From 27e5783fedcde41cd8831399cf0c089ab37bb4ee Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 1 Oct 2023 09:54:23 +0000 Subject: [PATCH] lei: correct exit signal 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 48c5644b1..1b14d5e12 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 -- 2.47.2