X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0f5e8daaa6e9f74521068aa75837200bcd182ea6..a94c908b9acf9a86f175c7f1c29b2c52e72eb2d2:/src/xbt/xbt_os_time.c diff --git a/src/xbt/xbt_os_time.c b/src/xbt/xbt_os_time.c index f7e90b2471..dc72c91b13 100644 --- a/src/xbt/xbt_os_time.c +++ b/src/xbt/xbt_os_time.c @@ -12,9 +12,9 @@ #include "portable.h" #include /* floor */ - #ifdef _XBT_WIN32 #include +#include #endif double xbt_os_time(void) @@ -55,17 +55,18 @@ double xbt_os_time(void) void xbt_os_sleep(double sec) { -#ifdef HAVE_USLEEP - sleep(sec); - (void) usleep((sec - floor(sec)) * 1000000); -#elif _XBT_WIN32 +#ifdef _XBT_WIN32 Sleep((floor(sec) * 1000) + ((sec - floor(sec)) * 1000)); -#else /* don't have usleep. Use select to sleep less than one second */ +#elif HAVE_NANOSLEEP + struct timespec ts; + ts.tv_sec = sec; + ts.tv_nsec = (sec - floor(sec)) * 1e9; + nanosleep (&ts, NULL); +#else /* don't have nanosleep. Use select to sleep less than one second */ struct timeval timeout; - timeout.tv_sec = (unsigned long) (sec); timeout.tv_usec = (sec - floor(sec)) * 1000000;