diff options
Diffstat (limited to 'lib/PublicInbox/LeiUp.pm')
-rw-r--r-- | lib/PublicInbox/LeiUp.pm | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/lib/PublicInbox/LeiUp.pm b/lib/PublicInbox/LeiUp.pm index 49917339..9931f017 100644 --- a/lib/PublicInbox/LeiUp.pm +++ b/lib/PublicInbox/LeiUp.pm @@ -3,14 +3,14 @@ # "lei up" - updates the result of "lei q --save" package PublicInbox::LeiUp; -use strict; -use v5.10.1; +use v5.12; # n.b. we use LeiInput to setup IMAP auth use parent qw(PublicInbox::IPC PublicInbox::LeiInput); use PublicInbox::LeiSavedSearch; # OverIdx use PublicInbox::DS; use PublicInbox::PktOp; use PublicInbox::LeiFinmsg; +use PublicInbox::LEI; my $REMOTE_RE = qr!\A(?:imap|http)s?://!i; # http(s) will be for JMAP sub up1 ($$) { @@ -92,7 +92,6 @@ sub redispatch_all ($$) { $op_c->{ops} = { '' => [ $lei->can('dclose'), $lei ] }; my @first_batch = splice(@$upq, 0, $j); # initial parallelism $lei->{-upq} = $upq; - $lei->{daemon_pid} = $$; $lei->event_step_init; # wait for client disconnects for my $out (@first_batch) { PublicInbox::DS::requeue( @@ -165,9 +164,8 @@ sub _complete_up { # lei__complete hook map { $match_cb->($_) } PublicInbox::LeiSavedSearch::list($lei); } -sub _wq_done_wait { # dwaitpid callback - my ($arg, $pid) = @_; - my ($wq, $lei) = @$arg; +sub _wq_done_wait { # awaitpid cb + my ($pid, $wq, $lei) = @_; $lei->child_error($?, 'auth failure') if $? } @@ -175,8 +173,7 @@ no warnings 'once'; *ipc_atfork_child = \&PublicInbox::LeiInput::input_only_atfork_child; package PublicInbox::LeiUp1; # for redispatch_all -use strict; -use v5.10.1; +use v5.12; sub nxt ($$$) { my ($lei, $out, $op_p) = @_; @@ -213,8 +210,8 @@ sub event_step { # runs via PublicInbox::DS::requeue sub DESTROY { my ($self) = @_; + return if ($PublicInbox::LEI::daemon_pid // -1) != $$; my $lei = $self->{lei}; # the original, from lei_up - return if $lei->{daemon_pid} != $$; my $sock = delete $self->{unref_on_destroy}; my $s = $lei->{-socks} // []; @$s = grep { $_ != $sock } @$s; |