aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-04-05 11:49:46 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-04-06 11:43:23 -0300
commitf8970e1c7c445c1cc18065902f77ea33b67cf050 (patch)
treefb96287fe5825135acd66defe87675aeb1ecd705
parentb6d458e1379f23fcfe7e2dbd8e37040e26f2f6ae (diff)
downloadrneovim-f8970e1c7c445c1cc18065902f77ea33b67cf050.tar.gz
rneovim-f8970e1c7c445c1cc18065902f77ea33b67cf050.tar.bz2
rneovim-f8970e1c7c445c1cc18065902f77ea33b67cf050.zip
Implement os_microdelay and os_delay on top of it
-rw-r--r--src/os/time.c18
-rw-r--r--src/os/time.h4
2 files changed, 15 insertions, 7 deletions
diff --git a/src/os/time.c b/src/os/time.c
index c0436595f6..2daf866cc7 100644
--- a/src/os/time.c
+++ b/src/os/time.c
@@ -3,13 +3,14 @@
#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 delay(uint64_t ms);
+static void microdelay(uint64_t ms);
void time_init()
{
@@ -17,7 +18,12 @@ void time_init()
uv_cond_init(&delay_cond);
}
-void os_delay(uint64_t ms, bool ignoreinput)
+void os_delay(uint64_t milliseconds, bool ignoreinput)
+{
+ os_microdelay(milliseconds * 1000, ignoreinput);
+}
+
+void os_microdelay(uint64_t microseconds, bool ignoreinput)
{
int old_tmode;
@@ -31,19 +37,19 @@ void os_delay(uint64_t ms, bool ignoreinput)
if (curr_tmode == TMODE_RAW)
settmode(TMODE_SLEEP);
- delay(ms);
+ microdelay(microseconds);
settmode(old_tmode);
in_os_delay = false;
} else {
- delay(ms);
+ microdelay(microseconds);
}
}
-static void delay(uint64_t ms)
+static void microdelay(uint64_t microseconds)
{
uint64_t hrtime;
- int64_t ns = ms * 1000000; // convert to nanoseconds
+ int64_t ns = microseconds * 1000; // convert to nanoseconds
uv_mutex_lock(&delay_mutex);
diff --git a/src/os/time.h b/src/os/time.h
index 3d35e422e3..f8e65e0c47 100644
--- a/src/os/time.h
+++ b/src/os/time.h
@@ -5,6 +5,8 @@
#include <stdbool.h>
void time_init(void);
-void os_delay(uint64_t ms, bool ignoreinput);
+void os_delay(uint64_t milliseconds, bool ignoreinput);
+void os_microdelay(uint64_t microseconds, bool ignoreinput);
#endif // NEOVIM_OS_TIME_H
+