diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2014-04-05 11:49:46 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-04-06 11:43:23 -0300 |
commit | f8970e1c7c445c1cc18065902f77ea33b67cf050 (patch) | |
tree | fb96287fe5825135acd66defe87675aeb1ecd705 | |
parent | b6d458e1379f23fcfe7e2dbd8e37040e26f2f6ae (diff) | |
download | rneovim-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.c | 18 | ||||
-rw-r--r-- | src/os/time.h | 4 |
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 + |