Browse Source

libuv: macos: restore use of kqueue instead of posix poll

Revert commit f54ec4e7f9 (libuv: macos: use posix poll instead of
kqueue, 2024-03-31, v3.29.1~7^2) and its parent.  It is not necessary
after the kqueue-based implementation was fixed to reap child processes
more reliably.

Issue: #25839
Brad King 1 year ago
parent
commit
422c1de564

+ 2 - 2
Utilities/cmlibuv/CMakeLists.txt

@@ -191,8 +191,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
     src/unix/bsd-ifaddrs.c
     src/unix/darwin.c
     src/unix/darwin-proctitle.c
-    src/unix/no-fsevents.c
-    src/unix/posix-poll.c
+    src/unix/fsevents.c
+    src/unix/kqueue.c
     src/unix/proctitle.c
     )
 endif()

+ 2 - 7
Utilities/cmlibuv/include/uv/darwin.h

@@ -30,11 +30,6 @@
 # define UV_PLATFORM_SEM_T semaphore_t
 #endif
 
-#if 1 /* FIXME(#25839): use posix poll to avoid kqueue hangs on macOS.  */
-# include "posix.h"
-#else
-#define UV_HAVE_KQUEUE 1
-
 #define UV_IO_PRIVATE_PLATFORM_FIELDS                                         \
   int rcount;                                                                 \
   int wcount;                                                                 \
@@ -58,9 +53,9 @@
   int cf_error;                                                               \
   uv_mutex_t cf_mutex;                                                        \
 
-#endif
-
 #define UV_STREAM_PRIVATE_PLATFORM_FIELDS                                     \
   void* select;                                                               \
 
+#define UV_HAVE_KQUEUE 1
+
 #endif /* UV_DARWIN_H */

+ 0 - 2
Utilities/cmlibuv/src/unix/darwin.c

@@ -41,7 +41,6 @@ static mach_timebase_info_data_t timebase;
 
 typedef unsigned char UInt8;
 
-#ifdef UV_HAVE_KQUEUE
 int uv__platform_loop_init(uv_loop_t* loop) {
   loop->cf_state = NULL;
 
@@ -55,7 +54,6 @@ int uv__platform_loop_init(uv_loop_t* loop) {
 void uv__platform_loop_delete(uv_loop_t* loop) {
   uv__fsevents_loop_delete(loop);
 }
-#endif
 
 
 static void uv__hrtime_init_once(void) {