aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorTudor Brindus <me@tbrindus.ca>2020-06-05 17:12:31 -0400
committerSimon Ser <contact@emersion.fr>2020-06-06 13:38:41 +0200
commitd7900c6e5e82406c1ed6a6df2ff3d1896149deff (patch)
treeed8ca52d119bdbc250c3e2e7d5e7f8f63d450449 /common
parentd835df38dedc9c5e2a64d7eb204eae480470d5c1 (diff)
common/util: fix `get_current_time_msec` returning microseconds
This commit makes `get_current_time_msec` correctly return milliseconds as opposed to microseconds. It also considers the value of `tv_sec`, so we don't lose occasionally go back in time by one second. Finally, the function is moved into `util.c` so that it can be reused elsewhere without having to consider these pitfalls.
Diffstat (limited to 'common')
-rw-r--r--common/util.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/common/util.c b/common/util.c
index c7ef2ac4..cb142a5e 100644
--- a/common/util.c
+++ b/common/util.c
@@ -1,8 +1,8 @@
#define _POSIX_C_SOURCE 200809L
#include <ctype.h>
-#include <float.h>
#include <fcntl.h>
#include <math.h>
+#include <time.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
@@ -10,6 +10,12 @@
#include "log.h"
#include "util.h"
+uint32_t get_current_time_msec(void) {
+ struct timespec now;
+ clock_gettime(CLOCK_MONOTONIC, &now);
+ return now.tv_sec * 1000 + now.tv_nsec / 1000000;
+}
+
int wrap(int i, int max) {
return ((i % max) + max) % max;
}