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.
---
lib/PublicInbox/LEI.pm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm
index 48c5644b..1b14d5e1 100644
--- a/lib/PublicInbox/LEI.pm
+++ b/lib/PublicInbox/LEI.pm
@@ -1310,9 +1310,9 @@ sub lazy_start {
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