diff options
Diffstat (limited to 'lib/util/time.c')
-rw-r--r-- | lib/util/time.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/util/time.c b/lib/util/time.c index 5ecf93cb77..ed3b4f8e30 100644 --- a/lib/util/time.c +++ b/lib/util/time.c @@ -65,6 +65,27 @@ _PUBLIC_ void clock_gettime_mono(struct timespec *tp) } } +/** +a wrapper to preferably get the monotonic time in seconds +as this is only second resolution we can use the cached +(and much faster) COARS clock variant +**/ +_PUBLIC_ time_t time_mono(time_t *t) +{ + struct timespec tp; + int rc = -1; +#ifdef CLOCK_MONOTONIC_COARSE + rc = clock_gettime(CLOCK_MONOTONIC_COARSE,&tp); +#endif + if (rc != 0) { + clock_gettime_mono(&tp); + } + if (t != NULL) { + *t = tp.tv_sec; + } + return tp.tv_sec; +} + #define TIME_FIXUP_CONSTANT 11644473600LL |