about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-02-02 22:11:42 -1000
committerEric Wong <e@80x24.org>2021-02-04 01:37:09 +0000
commita848cb1e2229e0b313271dad879f9a101e414316 (patch)
tree4e58d3a7360d7f7663f6c490d1ada08eb6cae731 /lib
parent298751baed3ce7ae1549356152784b83220a31f0 (diff)
downloadpublic-inbox-a848cb1e2229e0b313271dad879f9a101e414316.tar.gz
Perl may internally race and miss signals due to a lack of
self-pipe / eventfd / signalfd / EVFILT_SIGNAL usage.  While our
event loop paths avoid these problems by using signalfd or
EVFILT_SIGNAL, thse sleep() calls are not within the event loop.
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/LEI.pm2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm
index 005f6f7a..28dce0c5 100644
--- a/lib/PublicInbox/LEI.pm
+++ b/lib/PublicInbox/LEI.pm
@@ -299,7 +299,7 @@ sub x_it ($$) {
                 if (my $signum = ($code & 127)) { # usually SIGPIPE (13)
                         $SIG{PIPE} = 'DEFAULT'; # $SIG{$signum} doesn't work
                         kill $signum, $$;
-                        sleep; # wait for signal
+                        sleep(1) while 1; # wait for signal
                 } else {
                         $quit->($code >> 8);
                 }