From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 895941F9FF for ; Mon, 22 Feb 2021 21:38:22 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 2/2] lei: avoid needless env passing to subcommands Date: Tue, 23 Feb 2021 03:38:22 +0600 Message-Id: <20210222213822.18794-3-e@80x24.org> In-Reply-To: <20210222213822.18794-1-e@80x24.org> References: <20210222213822.18794-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: We already localize %ENV before calling dispatch(), so it's needless overhead in spawn() to be checking env for undef values in those cases. --- lib/PublicInbox/LEI.pm | 4 ++-- lib/PublicInbox/LeiMirror.pm | 6 +++--- lib/PublicInbox/LeiToMail.pm | 4 ++-- lib/PublicInbox/LeiXSearch.pm | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm index 31dbd01f..019b3152 100644 --- a/lib/PublicInbox/LEI.pm +++ b/lib/PublicInbox/LEI.pm @@ -838,8 +838,7 @@ sub poke_mua { # forces terminal MUAs to wake up and hopefully notice new mail # caller needs to "-t $self->{1}" to check if tty sub start_pager { my ($self) = @_; - my $env = $self->{env}; - my $fh = popen_rd([qw(git var GIT_PAGER)], $env); + my $fh = popen_rd([qw(git var GIT_PAGER)]); chomp(my $pager = <$fh> // ''); close($fh) or warn "`git var PAGER' error: \$?=$?"; return if $pager eq 'cat' || $pager eq ''; @@ -848,6 +847,7 @@ sub start_pager { pipe(my ($r, $wpager)) or return warn "pipe: $!"; my $rdr = { 0 => $r, 1 => $self->{1}, 2 => $self->{2} }; my $pgr = [ undef, @$rdr{1, 2} ]; + my $env = $self->{env}; if ($self->{sock}) { # lei(1) process runs it delete @$new_env{keys %$env}; # only set iff unset send_exec_cmd($self, [ @$rdr{0..2} ], [$pager], $new_env); diff --git a/lib/PublicInbox/LeiMirror.pm b/lib/PublicInbox/LeiMirror.pm index f8ca1ee5..65818796 100644 --- a/lib/PublicInbox/LeiMirror.pm +++ b/lib/PublicInbox/LeiMirror.pm @@ -32,7 +32,7 @@ sub try_scrape { my $curl = $self->{curl} //= PublicInbox::LeiCurl->new($lei) or return; my $cmd = $curl->for_uri($lei, $uri, '--compressed'); my $opt = { 0 => $lei->{0}, 2 => $lei->{2} }; - my $fh = popen_rd($cmd, $lei->{env}, $opt); + my $fh = popen_rd($cmd, undef, $opt); my $html = do { local $/; <$fh> } // die "read(curl $uri): $!"; close($fh) or return $lei->child_error($?, "@$cmd failed"); @@ -142,7 +142,7 @@ sub run_reap { my ($lei, $cmd, $opt) = @_; $lei->qerr("# @$cmd"); $opt->{pgid} = 0; - my $pid = spawn($cmd, $lei->{env}, $opt); + my $pid = spawn($cmd, undef, $opt); my $reap = PublicInbox::OnDestroy->new($lei->can('sigint_reap'), $pid); my $err = waitpid($pid, 0) == $pid ? undef : "waitpid @$cmd: $!"; @$reap = (); # cancel reap @@ -205,7 +205,7 @@ sub try_manifest { my $cmd = $curl->for_uri($lei, $uri); $lei->qerr("# @$cmd"); my $opt = { 0 => $lei->{0}, 2 => $lei->{2} }; - my ($fh, $pid) = popen_rd($cmd, $lei->{env}, $opt); + my ($fh, $pid) = popen_rd($cmd, undef, $opt); my $reap = PublicInbox::OnDestroy->new($lei->can('sigint_reap'), $pid); my $gz = do { local $/; <$fh> } // die "read(curl $uri): $!"; close $fh; diff --git a/lib/PublicInbox/LeiToMail.pm b/lib/PublicInbox/LeiToMail.pm index df813064..d77005fa 100644 --- a/lib/PublicInbox/LeiToMail.pm +++ b/lib/PublicInbox/LeiToMail.pm @@ -219,7 +219,7 @@ sub _post_augment_mbox { # open a compressor process my $cmd = zsfx2cmd($zsfx, undef, $lei); my ($r, $w) = @{delete $lei->{zpipe}}; my $rdr = { 0 => $r, 1 => $lei->{1}, 2 => $lei->{2} }; - my $pid = spawn($cmd, $lei->{env}, $rdr); + my $pid = spawn($cmd, undef, $rdr); my $pp = gensym; my $dup = bless { "pid.$pid" => $cmd }, ref($lei); $dup->{$_} = $lei->{$_} for qw(2 sock); @@ -232,7 +232,7 @@ sub _post_augment_mbox { # open a compressor process sub decompress_src ($$$) { my ($in, $zsfx, $lei) = @_; my $cmd = zsfx2cmd($zsfx, 1, $lei); - popen_rd($cmd, $lei->{env}, { 0 => $in, 2 => $lei->{2} }); + popen_rd($cmd, undef, { 0 => $in, 2 => $lei->{2} }); } sub dup_src ($) { diff --git a/lib/PublicInbox/LeiXSearch.pm b/lib/PublicInbox/LeiXSearch.pm index 6dcadf0a..c46aba3b 100644 --- a/lib/PublicInbox/LeiXSearch.pm +++ b/lib/PublicInbox/LeiXSearch.pm @@ -215,7 +215,7 @@ sub query_remote_mboxrd { local $0 = "$0 query_remote_mboxrd"; local $SIG{TERM} = sub { exit(0) }; # for DESTROY (File::Temp, $reap) my $lei = $self->{lei}; - my ($opt, $env) = @$lei{qw(opt env)}; + my $opt = $lei->{opt}; my @qform = (q => $lei->{mset_opt}->{qstr}, x => 'm'); push(@qform, t => 1) if $opt->{threads}; my $verbose = $opt->{verbose}; @@ -241,7 +241,7 @@ sub query_remote_mboxrd { $uri->query_form(@qform); my $cmd = $curl->for_uri($lei, $uri); $lei->qerr("# $cmd"); - my ($fh, $pid) = popen_rd($cmd, $env, $rdr); + my ($fh, $pid) = popen_rd($cmd, undef, $rdr); $reap_curl = PublicInbox::OnDestroy->new($sigint_reap, $pid); $fh = IO::Uncompress::Gunzip->new($fh); PublicInbox::MboxReader->mboxrd($fh, \&each_eml, $self,