The first argument passed to Perl signal handlers is a
signal name (e.g. "TERM") and not an integer that can
be passed to the `exit' perlop. Thus we must look up the
integer value from the POSIX module.
local $quit = do {
my (undef, $eof_p) = PublicInbox::PktOp->pair;
sub {
- $exit_code //= shift;
+ $exit_code //= eval("POSIX::SIG$_[0] + 128") if @_;
eval 'PublicInbox::LeiNoteEvent::flush_task()';
- my $lis = $pil or exit($exit_code);
+ my $lis = $pil or exit($exit_code // 0);
# closing eof_p triggers \&noop wakeup
$listener = $eof_p = $pil = $path = undef;
$lis->close; # DS::close