diff options
-rw-r--r-- | Utilities/cmlibuv/CMakeLists.txt | 4 | ||||
-rw-r--r-- | Utilities/cmlibuv/include/uv/darwin.h | 5 | ||||
-rw-r--r-- | Utilities/cmlibuv/src/unix/darwin.c | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/Utilities/cmlibuv/CMakeLists.txt b/Utilities/cmlibuv/CMakeLists.txt index a0b161b..29dd18e 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/fsevents.c - src/unix/kqueue.c + src/unix/no-fsevents.c + src/unix/posix-poll.c src/unix/proctitle.c ) endif() diff --git a/Utilities/cmlibuv/include/uv/darwin.h b/Utilities/cmlibuv/include/uv/darwin.h index 36f872a..7eeb194 100644 --- a/Utilities/cmlibuv/include/uv/darwin.h +++ b/Utilities/cmlibuv/include/uv/darwin.h @@ -30,6 +30,9 @@ # 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 \ @@ -55,6 +58,8 @@ int cf_error; \ uv_mutex_t cf_mutex; \ +#endif + #define UV_STREAM_PRIVATE_PLATFORM_FIELDS \ void* select; \ diff --git a/Utilities/cmlibuv/src/unix/darwin.c b/Utilities/cmlibuv/src/unix/darwin.c index 62f04d3..b9c8084 100644 --- a/Utilities/cmlibuv/src/unix/darwin.c +++ b/Utilities/cmlibuv/src/unix/darwin.c @@ -41,6 +41,7 @@ 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; @@ -54,6 +55,7 @@ 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) { |