Upstream-status: merged with commit ccec6c2f6770484278b25c3335d4bd8882bc4c87 diff --git a/configure.ac b/configure.ac index b54d5b49..584b0179 100644 --- a/configure.ac +++ b/configure.ac @@ -83,6 +83,7 @@ case "${host_os}" in ;; linux*) SYS=linux + CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200809L" ;; darwin*) SYS=darwin diff --git a/src/compat/msvc/unistd.h b/src/compat/msvc/unistd.h index d43d4796..abcc1c61 100644 --- a/src/compat/msvc/unistd.h +++ b/src/compat/msvc/unistd.h @@ -50,4 +50,6 @@ typedef int mode_t; #include +#define nanosleep(x) Sleep((x) / 1000000) + #endif diff --git a/tools/dhtcnode.c b/tools/dhtcnode.c index cdb04714..f78a7f7f 100644 --- a/tools/dhtcnode.c +++ b/tools/dhtcnode.c @@ -24,12 +24,17 @@ #include #include #include +#include #include #include #include #include +#ifdef _WIN32 +#include +#endif + struct op_context { dht_runner* runner; atomic_bool stop; @@ -287,7 +292,12 @@ int main(int argc, char **argv) // Wait until shutdown callback is called while (!atomic_load(&ctx.stop)) { - usleep(10000); +#ifdef _WIN32 + Sleep(10); // 10ms +#else + struct timespec ts = {0, 10000000}; // 10ms + nanosleep(&ts, NULL); +#endif } dht_runner_delete(runner); return EXIT_SUCCESS;