diff --git a/mongoose.c b/mongoose.c index b6b0bf9b..e9a5d59d 100644 --- a/mongoose.c +++ b/mongoose.c @@ -113,7 +113,7 @@ typedef long off_t; #define SHUT_WR 1 #define snprintf _snprintf #define vsnprintf _vsnprintf -#define sleep(x) Sleep((x) * 1000) +#define mg_sleep(x) Sleep(x) #define pipe(x) _pipe(x, BUFSIZ, _O_BINARY) #define popen(x, y) _popen(x, y) @@ -206,6 +206,7 @@ typedef struct DIR { #define mg_mkdir(x, y) mkdir(x, y) #define mg_remove(x) remove(x) #define mg_rename(x, y) rename(x, y) +#define mg_sleep(x) usleep((x) * 1000) #define ERRNO errno #define INVALID_SOCKET (-1) #define INT64_FMT PRId64 @@ -4079,7 +4080,7 @@ static void master_thread(struct mg_context *ctx) { // On windows, if read_set and write_set are empty, // select() returns "Invalid parameter" error // (at least on my Windows XP Pro). So in this case, we sleep here. - sleep(1); + mg_sleep(1000); #endif // _WIN32 } else { for (sp = ctx->listening_sockets; sp != NULL; sp = sp->next) { @@ -4148,7 +4149,7 @@ void mg_stop(struct mg_context *ctx) { // Wait until mg_fini() stops while (ctx->stop_flag != 2) { - (void) sleep(0); + mg_sleep(10); } free_context(ctx);