2/7 is a very welcome cleanup... I'm liking the `awaitpid' API quite a bit :> I noticed the bug fixed by 1/7 while working on 2/7.
3/7 is a welcome cleanup, though 4/7 is debatable... IMHO epoll is total overkill for processes which will never see many FDs and can't benefit from EPOLLEXCLUSIVE. 5/7 helps me sleep better at night since I'm uncomfortable with using undocumented APIs And a couple of further signal blocking cleanups. Eric Wong (7): tests: map CLOFORK->FD_CLOEXEC temporarily for `tail -f' daemon: depend on DS event_loop in master process, too ds: use object-oriented API for epoll favor poll(2) for most daemons dspoll: switch to the documented IO::Poll API ds: use constants for @UNBLOCKABLE list spawn: do not block ABRT/BUS/ILL/SEGV signals MANIFEST | 1 + lib/PublicInbox/DS.pm | 60 ++++---- lib/PublicInbox/DSKQXS.pm | 58 ++++---- lib/PublicInbox/DSPoll.pm | 64 ++++----- lib/PublicInbox/Daemon.pm | 254 ++++++++++++++++------------------ lib/PublicInbox/Epoll.pm | 23 +++ lib/PublicInbox/Sigfd.pm | 12 +- lib/PublicInbox/Spawn.pm | 11 +- lib/PublicInbox/SpawnPP.pm | 4 + lib/PublicInbox/Syscall.pm | 12 +- lib/PublicInbox/TestCommon.pm | 43 +++++- t/ds-kqxs.t | 4 +- t/ds-poll.t | 29 ++-- t/epoll.t | 23 ++- t/httpd-unix.t | 21 ++- t/lei-daemon.t | 1 + t/sigfd.t | 4 +- t/watch_maildir.t | 1 + t/xap_helper.t | 7 +- 19 files changed, 323 insertions(+), 309 deletions(-) create mode 100644 lib/PublicInbox/Epoll.pm
