A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Replace usleep for nanosleep
[simgrid.git]
/
src
/
xbt
/
xbt_os_time.c
diff --git
a/src/xbt/xbt_os_time.c
b/src/xbt/xbt_os_time.c
index
f7e90b2
..
dc72c91
100644
(file)
--- a/
src/xbt/xbt_os_time.c
+++ b/
src/xbt/xbt_os_time.c
@@
-12,9
+12,9
@@
#include "portable.h"
#include <math.h> /* floor */
#include "portable.h"
#include <math.h> /* floor */
-
#ifdef _XBT_WIN32
#include <sys/timeb.h>
#ifdef _XBT_WIN32
#include <sys/timeb.h>
+#include <windows.h>
#endif
double xbt_os_time(void)
#endif
double xbt_os_time(void)
@@
-55,17
+55,18
@@
double xbt_os_time(void)
void xbt_os_sleep(double sec)
{
void xbt_os_sleep(double sec)
{
-#ifdef HAVE_USLEEP
- sleep(sec);
- (void) usleep((sec - floor(sec)) * 1000000);
-#
eli
f _XBT_WIN32
+#
ifde
f _XBT_WIN32
Sleep((floor(sec) * 1000) + ((sec - floor(sec)) * 1000));
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;
struct timeval timeout;
-
timeout.tv_sec = (unsigned long) (sec);
timeout.tv_usec = (sec - floor(sec)) * 1000000;
timeout.tv_sec = (unsigned long) (sec);
timeout.tv_usec = (sec - floor(sec)) * 1000000;