@@ -38,15 +38,15 @@ diff --git a/deps/uv/src/unix/async.c b/deps/uv/src/unix/async.c
3838index 0ff2669e30a628dbb2df9e28ba14b38cf14114e5..117190ef26338944b78dbed7380c631de8057223 100644
3939--- a/deps/uv/src/unix/async.c
4040+++ b/deps/uv/src/unix/async.c
41- @@ -38 ,7 +38 ,6 @@
42- #include <sys/eventfd.h>
41+ @@ -66 ,7 +66 ,6 @@ static void uv__kqueue_runtime_detection(void) {
42+ }
4343 #endif
4444
4545- static void uv__async_send(uv_loop_t* loop);
4646 static int uv__async_start(uv_loop_t* loop);
4747 static void uv__cpu_relax(void);
4848
49- @@ -78 ,7 +77 ,7 @@ int uv_async_send(uv_async_t* handle) {
49+ @@ -106 ,7 +105 ,7 @@ int uv_async_send(uv_async_t* handle) {
5050
5151 /* Wake up the other thread's event loop. */
5252 if (atomic_exchange(pending, 1) == 0)
@@ -55,7 +55,7 @@ index 0ff2669e30a628dbb2df9e28ba14b38cf14114e5..117190ef26338944b78dbed7380c631d
5555
5656 /* Set the loop to not-busy. */
5757 atomic_fetch_add(busy, -1);
58- @@ -178,39 +177 ,6 @@ static void uv__async_io(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
58+ @@ -210,50 +209 ,6 @@ static void uv__async_io(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
5959 }
6060
6161
@@ -76,6 +76,17 @@ index 0ff2669e30a628dbb2df9e28ba14b38cf14114e5..117190ef26338944b78dbed7380c631d
7676- len = sizeof(val);
7777- fd = loop->async_io_watcher.fd; /* eventfd */
7878- }
79+ - #elif UV__KQUEUE_EVFILT_USER
80+ - struct kevent ev;
81+ -
82+ - if (kqueue_evfilt_user_support) {
83+ - fd = loop->async_io_watcher.fd; /* magic number for EVFILT_USER */
84+ - EV_SET(&ev, fd, EVFILT_USER, 0, NOTE_TRIGGER, 0, 0);
85+ - r = kevent(loop->backend_fd, &ev, 1, NULL, 0, NULL);
86+ - if (r == 0)
87+ - return;
88+ - abort();
89+ - }
7990- #endif
8091-
8192- do
@@ -99,17 +110,17 @@ diff --git a/deps/uv/src/unix/core.c b/deps/uv/src/unix/core.c
99110index 0c52ccf2ad7b2dcae77a7bc4b3af9d1a1346ce18..13cd33a7d3031c5e19c9418a18217d1e4158c82e 100644
100111--- a/deps/uv/src/unix/core.c
101112+++ b/deps/uv/src/unix/core.c
102- @@ -937,6 +937,9 @@ void uv__io_start(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
103- loop->watchers[w->fd] = w;
113+ @@ -944,6 +944,9 @@ int uv__io_start(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
104114 loop->nfds++;
105115 }
106- +
116+
107117+ if (uv__get_internal_fields(loop)->flags & UV_LOOP_INTERRUPT_ON_IO_CHANGE)
108118+ uv__loop_interrupt(loop);
119+ +
120+ return 0;
109121 }
110122
111-
112- @@ -968,6 +971,9 @@ void uv__io_stop(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
123+ @@ -993,6 +996,9 @@ void uv__io_stop(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
113124 }
114125 else if (uv__queue_empty(&w->watcher_queue))
115126 uv__queue_insert_tail(&loop->watcher_queue, &w->watcher_queue);
0 commit comments