Disable SIGIO notifier

It doesn't work on WSL, Solaris and Archlinux (and presumably that
means future versions of other linux distros).

In its current state I don't trust it enough to enable it anywhere by
default, especially since I'm not aware of an actual issue with the
named pipe (other than that the code is ugly).

Fixes #7774
This commit is contained in:
Fabian Homborg 2021-03-03 22:18:01 +01:00
parent 0a3fec5e8b
commit 791b42f065

View File

@ -1582,11 +1582,10 @@ universal_notifier_t::notifier_strategy_t universal_notifier_t::resolve_default_
return strategy_notifyd;
#elif defined(__CYGWIN__)
return strategy_shmem_polling;
#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.
#elif 0 && defined(SIGIO) && (defined(__APPLE__) || defined(__BSD__) || defined(__linux__))
// FIXME: The SIGIO notifier relies on an extremely specific interaction between signal handling and
// O_ASYNC writes, and doesn't currently work particularly well, so it's disabled.
// See discussion in #6585 and #7774 for examples of breakage.
//
// The SIGIO notifier does not yet work on WSL. See #7429
if (is_windows_subsystem_for_linux()) {