Mercurial > dwindows
changeset 870:59c4fac42fb5
Need to use tv_sec if tv_nsec exceeds one second on Solaris.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 04 Apr 2011 04:37:05 +0000 |
parents | 21aa7434e7c5 |
children | b15ad609365e |
files | compat.c |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/compat.c Mon Apr 04 03:41:21 2011 +0000 +++ b/compat.c Mon Apr 04 04:37:05 2011 +0000 @@ -22,6 +22,7 @@ #endif #endif #include <time.h> +#include <errno.h> #if defined(__UNIX__) || defined(__MAC__) void msleep(long period) @@ -31,8 +32,13 @@ struct timespec req; req.tv_sec = 0; + if(period >= 1000) + { + req.tv_sec = (int)(period / 1000); + period -= (req.tv_sec * 1000); + } req.tv_nsec = period * 10000000; - + nanosleep(&req, NULL); #else usleep(period * 1000);