diff --git a/src/env_universal_common.cpp b/src/env_universal_common.cpp index 36f69cc72..bdbe8c5ca 100644 --- a/src/env_universal_common.cpp +++ b/src/env_universal_common.cpp @@ -1582,7 +1582,12 @@ universal_notifier_t::notifier_strategy_t universal_notifier_t::resolve_default_ return strategy_notifyd; #elif defined(__CYGWIN__) return strategy_shmem_polling; -#elif defined(SIGIO) +#elif defined(SIGIO) && (defined(__APPLE__) || defined(__BSD__) || defined(__linux__)) + // The SIGIO notifier relies on an extremely specific interaction between signal handling and + // O_ASYNC writes, and doesn't excercise codepaths that are particularly well explored on all + // POSIX and POSIX-like systems, so we only explicitly enable it on platforms where it's known + // to work. See discussion in #6585 for examples of breakage. + // // The SIGIO notifier does not yet work on WSL. See #7429 if (is_windows_subsystem_for_linux()) { return strategy_named_pipe;