aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/os/time.c
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-12-03 10:03:39 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-12-03 10:03:39 -0300
commitbf3a94ee51d90e80912934b5f90b299d207b0afb (patch)
treeb293966754558e8cf2ac85dde27ea7cbe8fb4336 /src/nvim/os/time.c
parent41f1678767071b037e0097e7c46eeecbe6bd6df4 (diff)
downloadrneovim-bf3a94ee51d90e80912934b5f90b299d207b0afb.tar.gz
rneovim-bf3a94ee51d90e80912934b5f90b299d207b0afb.tar.bz2
rneovim-bf3a94ee51d90e80912934b5f90b299d207b0afb.zip
time: Inline microdelay into os_microdelay
Diffstat (limited to 'src/nvim/os/time.c')
-rw-r--r--src/nvim/os/time.c37
1 files changed, 16 insertions, 21 deletions
diff --git a/src/nvim/os/time.c b/src/nvim/os/time.c
index 3794e813d2..810ddea82b 100644
--- a/src/nvim/os/time.c
+++ b/src/nvim/os/time.c
@@ -54,7 +54,22 @@ void os_delay(uint64_t milliseconds, bool ignoreinput)
/// @param microseconds Number of microseconds to sleep
void os_microdelay(uint64_t microseconds)
{
- microdelay(microseconds);
+ uint64_t elapsed = 0;
+ uint64_t ns = microseconds * 1000; // convert to nanoseconds
+ uint64_t base = uv_hrtime();
+
+ uv_mutex_lock(&delay_mutex);
+
+ while (elapsed < ns) {
+ if (uv_cond_timedwait(&delay_cond, &delay_mutex, ns - elapsed)
+ == UV_ETIMEDOUT)
+ break;
+ uint64_t now = uv_hrtime();
+ elapsed += now - base;
+ base = now;
+ }
+
+ uv_mutex_unlock(&delay_mutex);
}
/// Portable version of POSIX localtime_r()
@@ -88,23 +103,3 @@ struct tm *os_get_localtime(struct tm *result) FUNC_ATTR_NONNULL_ALL
time_t rawtime = time(NULL);
return os_localtime_r(&rawtime, result);
}
-
-static void microdelay(uint64_t microseconds)
-{
- uint64_t elapsed = 0;
- uint64_t ns = microseconds * 1000; // convert to nanoseconds
- uint64_t base = uv_hrtime();
-
- uv_mutex_lock(&delay_mutex);
-
- while (elapsed < ns) {
- if (uv_cond_timedwait(&delay_cond, &delay_mutex, ns - elapsed)
- == UV_ETIMEDOUT)
- break;
- uint64_t now = uv_hrtime();
- elapsed += now - base;
- base = now;
- }
-
- uv_mutex_unlock(&delay_mutex);
-}