From: Szymon Pusz Date: Sat, 9 Nov 2013 10:57:59 +0000 (+0100) Subject: Fix for https://github.com/fatbob313/umurmur/issues/20 X-Git-Url: http://git.code-monkey.de/?p=umurmur.git;a=commitdiff_plain;h=743413746c3161a885cd7db1919a4cd90cbf03ff Fix for https://github.com/fatbob313/umurmur/issues/20 Uses monotonic clock instead of gettimeofday() which can provide wrong time if system clock changes (eg.due to NTP time sync, manual time change). After this fix timespan measurements will be always stable and accurate. --- diff --git a/src/timer.c b/src/timer.c index 5383e0e..55f5f9c 100644 --- a/src/timer.c +++ b/src/timer.c @@ -36,12 +36,12 @@ static uint64_t Timer_now() { - struct timeval tv; + struct timespec ts; uint64_t e; - gettimeofday(&tv, NULL); - e = tv.tv_sec * 1000000LL; - e += tv.tv_usec; + clock_gettime(CLOCK_MONOTONIC, &ts); + e = ts.tv_sec * 1000000LL; + e += ts.tv_nsec / 1000LL; //convert to microseconds return e; }