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);