X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FLeiMirror.pm;h=a75c99c4987f27906185b3921de10eb006314f4b;hb=4b5a1b5787edee2a3b6cc10a3ccc5721f1414268;hp=f1bc82e27205b547920cffa875953b04f84f50fe;hpb=f64fdbc7cc19a34f471abaeada9195597bf7a282;p=public-inbox.git diff --git a/lib/PublicInbox/LeiMirror.pm b/lib/PublicInbox/LeiMirror.pm index f1bc82e2..a75c99c4 100644 --- a/lib/PublicInbox/LeiMirror.pm +++ b/lib/PublicInbox/LeiMirror.pm @@ -7,6 +7,7 @@ use strict; use v5.10.1; use parent qw(PublicInbox::IPC); use PublicInbox::Config; +use PublicInbox::AutoReap; use IO::Uncompress::Gunzip qw(gunzip $GunzipError); use IO::Compress::Gzip qw(gzip $GzipError); use PublicInbox::Spawn qw(popen_rd spawn); @@ -192,10 +193,8 @@ sub index_cloned_inbox { sub run_reap { my ($lei, $cmd, $opt) = @_; $lei->qerr("# @$cmd"); - my $pid = spawn($cmd, undef, $opt); - my $reap = PublicInbox::OnDestroy->new($lei->can('sigint_reap'), $pid); - waitpid($pid, 0) == $pid or die "waitpid @$cmd: $!"; - @$reap = (); # cancel reap + my $ar = PublicInbox::AutoReap->new(spawn($cmd, undef, $opt)); + $ar->join; my $ret = $?; $? = 0; # don't let it influence normal exit $ret; @@ -459,7 +458,6 @@ sub start { sub ipc_atfork_child { my ($self) = @_; $self->{lei}->_lei_atfork_child; - $SIG{TERM} = sub { exit(128 + 15) }; # trigger OnDestroy $reap $self->SUPER::ipc_atfork_child; }