diff --git a/src/unix/kqueue.c b/src/unix/kqueue.c index 58a6816d..b689d68c 100644 --- a/src/unix/kqueue.c +++ b/src/unix/kqueue.c @@ -68,11 +68,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); }