diff --git a/deps/uv/src/unix/kqueue.c b/deps/uv/src/unix/kqueue.c index 68d064dad96..c3256a92236 100644 --- a/deps/uv/src/unix/kqueue.c +++ b/deps/uv/src/unix/kqueue.c @@ -69,11 +69,12 @@ static void uv__fs_event(EV_P_ ev_io* w, int revents) { handle->cb(handle, NULL, events, 0); - uv__fs_event_stop(handle); + if (handle->fd == -1) + return; /* File watcher operates in one-shot mode, re-arm it. */ - if (handle->fd != -1) - uv__fs_event_start(handle); + uv__fs_event_stop(handle); + uv__fs_event_start(handle); }