#ifndef WIN32
#include <sys/select.h>
#include <unistd.h>
+#include <time.h>
#else
#define strdup(src) _strdup(src)
-#define usleep(time) Sleep(time/1000)
#define fileno _fileno
#define read _read
#include <io.h>
static History *myhistory;
static HistEvent ev;
+static void _sleep_ns(int secs, long nsecs) {
+#ifndef WIN32
+ if (nsecs > 999999999) {
+ secs += nsecs/1000000000;
+ nsecs = nsecs % 1000000000;
+ }
+ {
+ struct timespec ts = { secs, nsecs };
+ nanosleep(&ts, NULL);
+ }
+#else
+ Sleep(secs*1000 + nsecs/1000000);
+#endif
+}
+
+static void sleep_ns(long nsecs) { _sleep_ns(0, nsecs); }
+static void sleep_ms(int msecs) { sleep_ns(msecs*1000000); }
+static void sleep_s(int secs) { _sleep_ns(secs, 0); }
+
static int process_command(esl_handle_t *handle, const char *cmd);
/* If a fnkey is configured then process the command */
if (aok) printf("Type control-D or /exit or /quit or /bye to exit.\n\n");
warn_stop = 0;
}
- usleep(1000);
+ sleep_ms(1);
}
thread_running = 0;
esl_log(ESL_LOG_DEBUG, "Thread Done\n");
command_buf[0] = 0;
}
}
- Sleep(20);
+ sleep_ms(20);
}
#endif
return command_buf;
if (!argv_exec) usage(argv[0]);
return -1;
} else {
-#ifndef WIN32
- sleep(1);
-#else
- Sleep(1000);
-#endif
+ sleep_s(1);
esl_log(ESL_LOG_INFO, "Retrying\n");
}
} else {
}
#endif
}
- usleep(1000);
+ sleep_ms(1);
}
if (running < 0 && reconnect) {
running = 1;