]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LeiToMail.pm
lei + ipc: simplify process reaping
[public-inbox.git] / lib / PublicInbox / LeiToMail.pm
index 9c748deaed161db7b9e2b02674a521fcc6ce5e0a..76e103c7c2351638902bac42cd6290488e9e761d 100644 (file)
@@ -637,6 +637,12 @@ sub _do_augment_mbox {
        $dedupe->pause_dedupe if $dedupe;
 }
 
+sub v2w_done_wait { # dwaitpid callback
+       my ($arg, $pid) = @_;
+       my ($v2w, $lei) = @$arg;
+       $lei->child_error($?, "error for $v2w->{ibx}->{inboxdir}") if $?;
+}
+
 sub _pre_augment_v2 {
        my ($self, $lei) = @_;
        my $dir = $self->{dst};
@@ -659,8 +665,8 @@ sub _pre_augment_v2 {
        PublicInbox::InboxWritable->new($ibx, @creat);
        $ibx->init_inbox if @creat;
        my $v2w = $ibx->importer;
-       $v2w->{-wq_no_bcast} = 1;
        $v2w->wq_workers_start("lei/v2w $dir", 1, $lei->oldset, {lei => $lei});
+       $v2w->wq_wait_async(\&v2w_done_wait, $lei);
        $lei->{v2w} = $v2w;
        return if !$lei->{opt}->{shared};
        my $d = "$lei->{ale}->{git}->{git_dir}/objects";
@@ -811,7 +817,7 @@ sub net_merge_all_done {
                                $self->{dst}, \$self->{-au_noted});
        }
        $self->wq_broadcast('do_post_auth');
-       $self->wq_close(1);
+       $self->wq_close;
 }
 
 1;