]> Sergey Matveev's repositories - public-inbox.git/blobdiff - script/public-inbox-watch
watch: enable autoflush for STDOUT and STDERR
[public-inbox.git] / script / public-inbox-watch
index b6d545adad782c81cecb92c49e3dbb7578575546..c07d45d74aeb2bb8b3c6478490bc108ad32268a4 100755 (executable)
@@ -2,13 +2,15 @@
 # Copyright (C) 2016-2020 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
-use warnings;
+use IO::Handle;
 use PublicInbox::WatchMaildir;
 use PublicInbox::Config;
 use PublicInbox::DS;
 use PublicInbox::Sigfd;
 use PublicInbox::Syscall qw(SFD_NONBLOCK);
 my $oldset = PublicInbox::Sigfd::block_signals();
+STDOUT->autoflush(1);
+STDERR->autoflush(1);
 my ($config, $watch_md);
 my $reload = sub {
        $config = PublicInbox::Config->new;
@@ -22,7 +24,11 @@ if ($watch_md) {
                $watch_md->quit if $watch_md;
                $watch_md = undef;
        };
-       my $sig = { HUP => $reload, USR1 => $scan };
+       my $sig = {
+               HUP => $reload,
+               USR1 => $scan,
+               CHLD => \&PublicInbox::DS::enqueue_reap,
+       };
        $sig->{QUIT} = $sig->{TERM} = $sig->{INT} = $quit;
 
        # --no-scan is only intended for testing atm, undocumented.