From: Eric Wong Date: Fri, 8 Sep 2023 10:51:14 +0000 (+0000) Subject: watch: set %SIG for non-signalfd/kqueue X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=530db44a85fc48c63b7f97a056f384946753b7ed;p=thirdparty%2Fpublic-inbox.git watch: set %SIG for non-signalfd/kqueue We need to ensure there isn't a window where we lose $SIG{CHLD} handling. This is the second part in getting t/imapd.t to pass the reload-after-setting-imap.pollInterval test That said, I'm not entirely happy with the way -watch jumps in and out of the event loop. It's historical baggage from the pre-event_loop days. --- diff --git a/script/public-inbox-watch b/script/public-inbox-watch index 75a9a36bf..870cd31ba 100755 --- a/script/public-inbox-watch +++ b/script/public-inbox-watch @@ -52,6 +52,7 @@ if ($watch) { CHLD => \&PublicInbox::DS::enqueue_reap, }; $sig->{QUIT} = $sig->{TERM} = $sig->{INT} = $quit; + local @SIG{keys %$sig} = values(%$sig); # for non-signalfd/kqueue # --no-scan is only intended for testing atm, undocumented. PublicInbox::DS::requeue($scan) if $do_scan;