aboutsummaryrefslogtreecommitdiffstats
path: root/common/util.c
diff options
context:
space:
mode:
authorLibravatar Tudor Brindus <me@tbrindus.ca>2020-06-05 17:12:31 -0400
committerLibravatar Simon Ser <contact@emersion.fr>2020-06-06 13:38:41 +0200
commitd7900c6e5e82406c1ed6a6df2ff3d1896149deff (patch)
treeed8ca52d119bdbc250c3e2e7d5e7f8f63d450449 /common/util.c
parentAdd wayland_client dependency to common (diff)
downloadsway-d7900c6e5e82406c1ed6a6df2ff3d1896149deff.tar.gz
sway-d7900c6e5e82406c1ed6a6df2ff3d1896149deff.tar.zst
sway-d7900c6e5e82406c1ed6a6df2ff3d1896149deff.zip
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/util.c')
-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 @@
1#define _POSIX_C_SOURCE 200809L 1#define _POSIX_C_SOURCE 200809L
2#include <ctype.h> 2#include <ctype.h>
3#include <float.h>
4#include <fcntl.h> 3#include <fcntl.h>
5#include <math.h> 4#include <math.h>
5#include <time.h>
6#include <stdlib.h> 6#include <stdlib.h>
7#include <string.h> 7#include <string.h>
8#include <strings.h> 8#include <strings.h>
@@ -10,6 +10,12 @@
10#include "log.h" 10#include "log.h"
11#include "util.h" 11#include "util.h"
12 12
13uint32_t get_current_time_msec(void) {
14 struct timespec now;
15 clock_gettime(CLOCK_MONOTONIC, &now);
16 return now.tv_sec * 1000 + now.tv_nsec / 1000000;
17}
18
13int wrap(int i, int max) { 19int wrap(int i, int max) {
14 return ((i % max) + max) % max; 20 return ((i % max) + max) % max;
15} 21}