aboutsummaryrefslogtreecommitdiff
path: root/src/os/time.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/time.c')
-rw-r--r--src/os/time.c86
1 files changed, 0 insertions, 86 deletions
diff --git a/src/os/time.c b/src/os/time.c
deleted file mode 100644
index 1dc7ca68d4..0000000000
--- a/src/os/time.c
+++ /dev/null
@@ -1,86 +0,0 @@
-#include <stdint.h>
-#include <stdbool.h>
-#include <sys/time.h>
-
-#include <uv.h>
-
-#include "os/time.h"
-#include "vim.h"
-#include "term.h"
-
-static uv_mutex_t delay_mutex;
-static uv_cond_t delay_cond;
-
-static void microdelay(uint64_t ms);
-
-void time_init()
-{
- uv_mutex_init(&delay_mutex);
- uv_cond_init(&delay_cond);
-}
-
-void os_delay(uint64_t milliseconds, bool ignoreinput)
-{
- os_microdelay(milliseconds * 1000, ignoreinput);
-}
-
-void os_microdelay(uint64_t microseconds, bool ignoreinput)
-{
- int old_tmode;
-
- if (ignoreinput) {
- // Go to cooked mode without echo, to allow SIGINT interrupting us
- // here
- old_tmode = curr_tmode;
-
- if (curr_tmode == TMODE_RAW)
- settmode(TMODE_SLEEP);
-
- microdelay(microseconds);
-
- settmode(old_tmode);
- } else {
- microdelay(microseconds);
- }
-}
-
-static void microdelay(uint64_t microseconds)
-{
- uint64_t hrtime;
- int64_t ns = microseconds * 1000; // convert to nanoseconds
-
- uv_mutex_lock(&delay_mutex);
-
- while (ns > 0) {
- hrtime = uv_hrtime();
- if (uv_cond_timedwait(&delay_cond, &delay_mutex, ns) == UV_ETIMEDOUT)
- break;
- ns -= uv_hrtime() - hrtime;
- }
-
- uv_mutex_unlock(&delay_mutex);
-}
-
-struct tm *os_localtime_r(const time_t *clock, struct tm *result)
-{
-#ifdef UNIX
- // POSIX provides localtime_r() as a thread-safe version of localtime().
- return localtime_r(clock, result);
-#else
- // Windows version of localtime() is thread-safe.
- // See http://msdn.microsoft.com/en-us/library/bf12f0hc%28VS.80%29.aspx
- struct tm *local_time = localtime(clock); // NOLINT
- *result = *local_time;
-return result;
-#endif
-}
-
-struct tm *os_get_localtime(struct tm *result)
-{
- struct timeval tv;
- if (gettimeofday(&tv, NULL) < 0) {
- return NULL;
- }
-
- return os_localtime_r(&tv.tv_sec, result);
-}