summaryrefslogtreecommitdiffstats
path: root/tmux.c
diff options
context:
space:
mode:
authornicm <nicm>2020-06-02 08:17:27 +0000
committernicm <nicm>2020-06-02 08:17:27 +0000
commitf3931497f8aee291bce132fb106cedb55c5b3fa9 (patch)
tree2acdacdac20714ab521508b93e362e35478ea06a /tmux.c
parent563b7331da2d31aca470389817c282a46da7c872 (diff)
Use CLOCK_MONOTONIC for timer measurement and add a timestamp to control
mode %output blocks.
Diffstat (limited to 'tmux.c')
-rw-r--r--tmux.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/tmux.c b/tmux.c
index cfc84cd0..a9aec43d 100644
--- a/tmux.c
+++ b/tmux.c
@@ -240,6 +240,20 @@ setblocking(int fd, int state)
}
}
+uint64_t
+get_timer(void)
+{
+ struct timespec ts;
+
+ /*
+ * We want a timestamp in milliseconds suitable for time measurement,
+ * so prefer the monotonic clock.
+ */
+ if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0)
+ clock_gettime(CLOCK_REALTIME, &ts);
+ return ((ts.tv_sec * 1000ULL) + (ts.tv_nsec / 1000000ULL));
+}
+
const char *
sig2name(int signo)
{