X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/461406a7de84177863ce0d70fa8017a147ca9990..a94c908b9acf9a86f175c7f1c29b2c52e72eb2d2:/src/xbt/xbt_os_time.c diff --git a/src/xbt/xbt_os_time.c b/src/xbt/xbt_os_time.c index 7b54af16e1..dc72c91b13 100644 --- a/src/xbt/xbt_os_time.c +++ b/src/xbt/xbt_os_time.c @@ -59,14 +59,14 @@ void xbt_os_sleep(double sec) #ifdef _XBT_WIN32 Sleep((floor(sec) * 1000) + ((sec - floor(sec)) * 1000)); -#elif HAVE_USLEEP - sleep(sec); - (void) usleep((sec - floor(sec)) * 1000000); - -#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;