summaryrefslogtreecommitdiffstats
path: root/client/threads.cpp
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2010-09-29 13:35:18 +0200
committerAlexander Larsson <alexl@redhat.com>2010-09-29 13:35:18 +0200
commit3f3283ee17d3318fa9bfb5c9900c06dbec434568 (patch)
treefd86625c5dacbd990ef6a78281c968268c14a7b5 /client/threads.cpp
parent93dc13c91a2634c59d2ff233fa8ba79a534205b0 (diff)
downloadspice-3f3283ee17d3318fa9bfb5c9900c06dbec434568.tar.gz
spice-3f3283ee17d3318fa9bfb5c9900c06dbec434568.tar.xz
spice-3f3283ee17d3318fa9bfb5c9900c06dbec434568.zip
client: Fall back to gettimeofday if clock_gettime not found
Diffstat (limited to 'client/threads.cpp')
-rw-r--r--client/threads.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/client/threads.cpp b/client/threads.cpp
index a9b8ea50..eb4b7a18 100644
--- a/client/threads.cpp
+++ b/client/threads.cpp
@@ -22,6 +22,9 @@
#ifdef WIN32
#include <sys/timeb.h>
#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
Thread::Thread(thread_main_t thread_main, void* opaque)
{
@@ -43,8 +46,13 @@ static inline void rel_time(struct timespec& time, uint64_t delta_nano)
_ftime_s(&now);
time.tv_sec = (long)now.time;
time.tv_nsec = now.millitm * 1000 * 1000;
-#else
+#elif defined(HAVE_CLOCK_GETTIME)
clock_gettime(CLOCK_MONOTONIC, &time);
+#else
+ struct timeval tv;
+ gettimeofday(&tv,NULL);
+ time.tv_sec = tv.tv_sec;
+ time.tv_nsec = tv.tv_usec*1000;
#endif
delta_nano += (uint64_t)time.tv_sec * 1000 * 1000 * 1000;
delta_nano += time.tv_nsec;