diff options
Diffstat (limited to 'src/time.c')
-rw-r--r-- | src/time.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -14,19 +14,27 @@ #include <stdint.h> #include <stdlib.h> +#include <unistd.h> #include <sys/time.h> +#include <time.h> #include "nsutils/time.h" /* exported interface documented in nsutils/time.h */ nsuerror nsu_getmonotonic_ms(uint64_t *current) { +#if (_POSIX_TIMERS > 0) && (defined _POSIX_MONOTONIC_CLOCK) + struct timespec tp; + clock_gettime(CLOCK_MONOTONIC, &tp); + *current = (tp.tv_sec * 1000) + (tp.tv_nsec / 1000000); +#else +#warning "Using dodgy gettimeofday() fallback" /** \todo Implement this properly! */ struct timeval tv; gettimeofday(&tv, NULL); *current = (tv.tv_sec * 1000) + (tv.tv_usec / 1000); - +#endif return NSUERROR_OK; } |