diff options
author | Eric Wong <e@80x24.org> | 2021-02-07 08:51:54 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-02-07 22:57:11 +0000 |
commit | 0727032b33a7dc3b5ac4c63e267a12df244ea650 (patch) | |
tree | 566d3615c4f5e3380a9b6e4e74383e320b144bf2 /lib/PublicInbox/LeiImport.pm | |
parent | 757652fd1ad6843c984610263a2a0b336c974111 (diff) | |
download | public-inbox-0727032b33a7dc3b5ac4c63e267a12df244ea650.tar.gz |
We're able to propagate $? from wq_workers in a consistent manner, now.
Diffstat (limited to 'lib/PublicInbox/LeiImport.pm')
-rw-r--r-- | lib/PublicInbox/LeiImport.pm | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/PublicInbox/LeiImport.pm b/lib/PublicInbox/LeiImport.pm index 3a99570e..2b2dc2f7 100644 --- a/lib/PublicInbox/LeiImport.pm +++ b/lib/PublicInbox/LeiImport.pm @@ -14,12 +14,18 @@ sub _import_eml { # MboxReader callback $sto->ipc_do('set_eml', $eml, $set_kw ? $sto->mbox_keywords($eml) : ()); } +sub import_done_wait { # dwaitpid callback + my ($arg, $pid) = @_; + my ($imp, $lei) = @$arg; + $lei->child_error($?, 'non-fatal errors during import') if $?; + my $ign = $lei->{sto}->ipc_do('done'); # PublicInbox::LeiStore::done + $lei->dclose; +} + sub import_done { # EOF callback for main daemon my ($lei) = @_; - my $imp = delete $lei->{imp}; - $imp->wq_wait_old($lei) if $imp; - my $wait = $lei->{sto}->ipc_do('done'); - $lei->dclose; + my $imp = delete $lei->{imp} or return; + $imp->wq_wait_old(\&import_done_wait, $lei); } sub call { # the main "lei import" method |