summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-06-21 17:56:46 (GMT)
committerBrad King <brad.king@kitware.com>2024-06-21 20:45:55 (GMT)
commit422c1de564cec5689de052d5eb0c2ddd7065833c (patch)
tree2d8d823e38362e4a43f062d56949c35310a92dba
parent7e3519e705b7df884eecd81d097f640fd61f52a4 (diff)
downloadCMake-422c1de564cec5689de052d5eb0c2ddd7065833c.zip
CMake-422c1de564cec5689de052d5eb0c2ddd7065833c.tar.gz
CMake-422c1de564cec5689de052d5eb0c2ddd7065833c.tar.bz2
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
-rw-r--r--Utilities/cmlibuv/CMakeLists.txt4
-rw-r--r--Utilities/cmlibuv/include/uv/darwin.h9
-rw-r--r--Utilities/cmlibuv/src/unix/darwin.c2
3 files changed, 4 insertions, 11 deletions
diff --git a/Utilities/cmlibuv/CMakeLists.txt b/Utilities/cmlibuv/CMakeLists.txt
index 29dd18e..a0b161b 100644
--- a/Utilities/cmlibuv/CMakeLists.txt
+++ b/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()
diff --git a/Utilities/cmlibuv/include/uv/darwin.h b/Utilities/cmlibuv/include/uv/darwin.h
index 7eeb194..d226415 100644
--- a/Utilities/cmlibuv/include/uv/darwin.h
+++ b/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 */
diff --git a/Utilities/cmlibuv/src/unix/darwin.c b/Utilities/cmlibuv/src/unix/darwin.c
index b9c8084..62f04d3 100644
--- a/Utilities/cmlibuv/src/unix/darwin.c
+++ b/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) {