aboutsummaryrefslogtreecommitdiffstats
path: root/src/systemtime.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemtime.c')
-rw-r--r--src/systemtime.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/systemtime.c b/src/systemtime.c
index 12b74cc..0d0cb85 100644
--- a/src/systemtime.c
+++ b/src/systemtime.c
@@ -18,17 +18,22 @@
*/
#include <stdio.h>
+#include <unistd.h>
#ifndef _WIN32
-# ifdef _POSIX_TIMERS
+# if _POSIX_TIMERS > 0
# include <time.h>
# else
# include <sys/time.h>
# endif
+#else
+# include <windows.h>
#endif
#include "systemtime.h"
+
+/* Return current time in T as the number of seconds since the epoch. */
int
systemtime_get_time(double *t)
{
@@ -41,7 +46,7 @@ systemtime_get_time(double *t)
/* FILETIME is tenths of microseconds since 1601-01-01 UTC */
*t = (i.QuadPart / 10000000.0) - 11644473600.0;
-#elif defined(_POSIX_TIMERS) /* POSIX timers */
+#elif _POSIX_TIMERS > 0 /* POSIX timers */
struct timespec now;
int r = clock_gettime(CLOCK_REALTIME, &now);
if (r < 0) {
@@ -63,3 +68,14 @@ systemtime_get_time(double *t)
return 0;
}
+
+/* Sleep for a number of milliseconds. */
+void
+systemtime_msleep(unsigned int msecs)
+{
+#ifndef _WIN32
+ usleep(msecs*1000);
+#else
+ Sleep(msecs);
+#endif
+}