diff options
Diffstat (limited to 'deps/uv/src/unix/darwin.c')
-rw-r--r-- | deps/uv/src/unix/darwin.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/deps/uv/src/unix/darwin.c b/deps/uv/src/unix/darwin.c index cc7c817c4d..f40efb2fcd 100644 --- a/deps/uv/src/unix/darwin.c +++ b/deps/uv/src/unix/darwin.c @@ -55,6 +55,9 @@ int uv__platform_loop_init(uv_loop_t* loop, int default_loop) { CFRunLoopSourceContext ctx; int r; + if (uv__kqueue_init(loop)) + return -1; + loop->cf_loop = NULL; if ((r = uv_mutex_init(&loop->cf_mutex))) return r; @@ -174,19 +177,12 @@ void uv__cf_loop_signal(uv_loop_t* loop, cf_loop_signal_cb cb, void* arg) { uint64_t uv_hrtime(void) { - uint64_t time; - uint64_t enano; - static mach_timebase_info_data_t sTimebaseInfo; - - time = mach_absolute_time(); - - if (0 == sTimebaseInfo.denom) { - (void)mach_timebase_info(&sTimebaseInfo); - } + mach_timebase_info_data_t info; - enano = time * sTimebaseInfo.numer / sTimebaseInfo.denom; + if (mach_timebase_info(&info) != KERN_SUCCESS) + abort(); - return enano; + return mach_absolute_time() * info.numer / info.denom; } |