From 3f97820a4301e3062561e2a6339c111a208fb4fa Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sun, 6 Aug 2017 18:09:15 +0100 Subject: [PATCH] [Minor] Use clock_gettime instead of gettimeofday --- src/libutil/util.c | 9 ++++++++- src/libutil/util.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/libutil/util.c b/src/libutil/util.c index c8c446138..54cacef44 100644 --- a/src/libutil/util.c +++ b/src/libutil/util.c @@ -1902,14 +1902,21 @@ gdouble rspamd_get_calendar_ticks (void) { gdouble res; +#ifdef HAVE_CLOCK_GETTIME + struct timespec ts; + + clock_gettime (CLOCK_REALTIME, &ts); + res = ts_to_double (&ts); +#else struct timeval tv; if (gettimeofday (&tv, NULL) == 0) { - res = (gdouble)tv.tv_sec + tv.tv_usec / 1e6f; + res = tv_to_double (&tv); } else { res = time (NULL); } +#endif return res; } diff --git a/src/libutil/util.h b/src/libutil/util.h index f07d166c5..9f42d6c92 100644 --- a/src/libutil/util.h +++ b/src/libutil/util.h @@ -207,6 +207,7 @@ void g_ptr_array_insert (GPtrArray *array, gint index_, gpointer data); #define tv_to_double(tv) ((double)(tv)->tv_sec + (tv)->tv_usec / 1.0e6) #define ts_to_usec(ts) ((ts)->tv_sec * 1000000LLU + \ (ts)->tv_nsec / 1000LLU) +#define ts_to_double(tv) ((double)(tv)->tv_sec + (tv)->tv_nsec / 1.0e9) /** * Try to allocate a file on filesystem (using fallocate or posix_fallocate) -- 2.39.5