]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LEI.pm
No ext_urls
[public-inbox.git] / lib / PublicInbox / LEI.pm
index 6ad421111db6bf74e157f9e1816179a6a3ab8bc6..d05b20dee4873ce57a6e0d9c44bf54d21dbe6c37 100644 (file)
@@ -561,17 +561,17 @@ sub note_sigpipe { # triggers sigpipe_handler
 sub _lei_atfork_child {
        my ($self, $persist) = @_;
        # we need to explicitly close things which are on stack
+       my $cfg = $self->{cfg};
        if ($persist) {
                open $self->{3}, '<', '/' or die "open(/) $!";
                fchdir($self);
                close($_) for (grep(defined, delete @$self{qw(0 1 2 sock)}));
-               if (my $cfg = $self->{cfg}) {
-                       delete @$cfg{qw(-lei_store -watches -lei_note_event)};
-               }
+               delete @$cfg{qw(-lei_store -watches -lei_note_event)};
        } else { # worker, Net::NNTP (Net::Cmd) uses STDERR directly
                open STDERR, '+>&='.fileno($self->{2}) or warn "open $!";
                STDERR->autoflush(1);
                POSIX::setpgid(0, $$) // die "setpgid(0, $$): $!";
+               delete @$cfg{qw(-watches -lei_note_event)};
        }
        close($_) for (grep(defined, delete @$self{qw(old_1 au_done)}));
        delete $self->{-socks};
@@ -643,8 +643,8 @@ sub workers_start {
        my $end = $lei->pkt_op_pair;
        my $ident = $wq->{-wq_ident} // "lei-$lei->{cmd} worker";
        $flds->{lei} = $lei;
-       $wq->awaitpid_init($wq->can('_wq_done_wait') // \&wq_done_wait, $lei);
-       $wq->wq_workers_start($ident, $jobs, $lei->oldset, $flds);
+       $wq->wq_workers_start($ident, $jobs, $lei->oldset, $flds,
+               $wq->can('_wq_done_wait') // \&wq_done_wait, $lei);
        delete $lei->{pkt_op_p};
        my $op_c = delete $lei->{pkt_op_c};
        @$end = ();
@@ -1390,7 +1390,7 @@ sub DESTROY {
        # preserve $? for ->fail or ->x_it code
 }
 
-sub wq_done_wait { # awaitpid cb (via wq_eof / IPC->awaitpid_init)
+sub wq_done_wait { # awaitpid cb (via wq_eof)
        my ($pid, $wq, $lei) = @_;
        local $current_lei = $lei;
        my $err_type = $lei->{-err_type};