lib/PublicInbox/LeiStore.pm | 8 +++++++- diff --git a/lib/PublicInbox/LeiStore.pm b/lib/PublicInbox/LeiStore.pm index 821045701dfe53398ad89ebddeb7853e54a4a299..16e7d302dc2fcdfaa0e6c239f3acb7ff571865a3 100644 --- a/lib/PublicInbox/LeiStore.pm +++ b/lib/PublicInbox/LeiStore.pm @@ -571,6 +571,12 @@ local $PublicInbox::DS::in_loop = 0; # waitpid synchronously $self->SUPER::recv_and_run(@args); } +sub _sto_atexit { # dwaitpid callback + my ($args, $pid) = @_; + my $self = $args->[0]; + warn "lei/store PID:$pid died \$?=$?\n" if $?; +} + sub write_prepare { my ($self, $lei) = @_; $lei // die 'BUG: $lei not passed'; @@ -587,7 +593,7 @@ lei => $lei, -err_wr => $w, to_close => [ $r ], }); - $self->wq_wait_async; # outlives $lei + $self->wq_wait_async(\&_sto_atexit); # outlives $lei require PublicInbox::LeiStoreErr; PublicInbox::LeiStoreErr->new($r, $lei); }