summaryrefslogtreecommitdiff
path: root/deps/uv/src/unix/darwin.c
diff options
context:
space:
mode:
Diffstat (limited to 'deps/uv/src/unix/darwin.c')
-rw-r--r--deps/uv/src/unix/darwin.c18
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;
}