mirror of
https://github.com/fish-shell/fish-shell
synced 2024-11-14 00:47:30 +00:00
Avoid hard compilation errors on platforms w/out O_ASYNC
Those platforms should not be using the sigio notifier in the first place, this just stops them from failing to be able to compile fish altogether. See #6585
This commit is contained in:
parent
9e1cd95eb1
commit
2cf5fd3d5d
1 changed files with 7 additions and 3 deletions
|
@ -1374,9 +1374,13 @@ class universal_notifier_sigio_t final : public universal_notifier_t {
|
||||||
}
|
}
|
||||||
// Note that O_ASYNC cannot be passed to open() (see Linux kernel bug #5993).
|
// Note that O_ASYNC cannot be passed to open() (see Linux kernel bug #5993).
|
||||||
// We have to set it afterwards like so.
|
// We have to set it afterwards like so.
|
||||||
// Also Linux got support for O_ASYNC on fifos in 2.6 (released 2003).
|
// Linux got support for O_ASYNC on fifos in 2.6 (released 2003). Treat its absence as a
|
||||||
// Do not be noisy if this fails.
|
// failure, but don't be noisy if this fails. Non-Linux platforms without O_ASYNC should use
|
||||||
if (fcntl(pipe.fd(), F_SETFL, O_NONBLOCK | O_ASYNC) == -1) {
|
// a different notifier strategy to avoid running into this.
|
||||||
|
#ifdef O_ASYNC
|
||||||
|
if (fcntl(pipe.fd(), F_SETFL, O_NONBLOCK | O_ASYNC) == -1)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
FLOGF(uvar_file,
|
FLOGF(uvar_file,
|
||||||
_(L"fcntl(F_SETFL) failed, universal variable notifications disabled"));
|
_(L"fcntl(F_SETFL) failed, universal variable notifications disabled"));
|
||||||
return autoclose_fd_t{};
|
return autoclose_fd_t{};
|
||||||
|
|
Loading…
Reference in a new issue