lib/PublicInbox/IPC.pm | 12 ++---------- diff --git a/lib/PublicInbox/IPC.pm b/lib/PublicInbox/IPC.pm index 7dc8ec6a9860f20d95205dd40e9a9266737b729b..5082f1103f3f93924b1a0a34fd1294c8c0b16ddd 100644 --- a/lib/PublicInbox/IPC.pm +++ b/lib/PublicInbox/IPC.pm @@ -69,7 +69,7 @@ # no waiting if client doesn't care, # this is the overwhelmingly likely case if (!defined($wantarray)) { eval { $self->$sub(@args) }; - eval { warn "$$ die: $@ (from nowait $sub)\n" } if $@; + warn "$$ die: $@ (from nowait $sub)\n" if $@; } elsif ($wantarray) { my @ret = eval { $self->$sub(@args) }; ipc_return($w_res, \@ret, $@); @@ -144,15 +144,7 @@ $w_req = $r_res = undef; # allow any sibling to send ipc_worker_exit, but siblings can't wait return if $$ != $ppid; - eval { - my $reap = $self->can('ipc_worker_reap'); - PublicInbox::DS::dwaitpid($pid, $reap, $self); - }; - if ($@) { - my $wp = waitpid($pid, 0); - $pid == $wp or die "waitpid($pid) returned $wp: \$?=$?"; - $self->ipc_worker_reap($pid); - } + PublicInbox::DS::dwaitpid($pid, \&ipc_worker_reap, $self); } # use this if we have multiple readers reading curl or "pigz -dc"