Date | Commit message (Collapse) |
|
NetBSD implements O_CLOEXEC, so let us use it to avoid
inadvertant FD sharing. It also has the same value for SIGWINCH
as Linux and the other BSDs we support.
|
|
I didn't wait until September to do it, this year!
|
|
We can use the return value of sysread to bound our loop instead
of repeatedly shortening the string. Furthermore add some
comments which can be easily checked against the signalfd(2)
manpage.
|
|
Our attempt at using a self-pipe in signal handlers was
ineffective, since pure Perl code execution is deferred
and Perl doesn't use an internal self-pipe/eventfd. In
retrospect, I actually prefer the simplicity of Perl in
this regard...
We can use sigprocmask() from Perl, so we can introduce
signalfd(2) and EVFILT_SIGNAL support on Linux and *BSD-based
systems, respectively. These OS primitives allow us to avoid a
race where Perl checks for signals right before epoll_wait() or
kevent() puts the process to sleep.
The (few) systems nowadays without signalfd(2) or IO::KQueue
will now see wakeups every second to avoid missed signals.
|