]> git.ipfire.org Git - thirdparty/public-inbox.git/commitdiff
lei_blob: use ProcessPipe to eliminate a waitpid call
authorEric Wong <e@80x24.org>
Tue, 26 Sep 2023 07:44:37 +0000 (07:44 +0000)
committerEric Wong <e@80x24.org>
Tue, 26 Sep 2023 21:02:41 +0000 (21:02 +0000)
waitpid with a positive PID isn't going to return anything
else unless we set ($SIG{CHLD} = 'IGNORE').

lib/PublicInbox/LeiBlob.pm

index 5fc6d902d22fb4aaced8581dbc4f668d6cd507af..1d8267c86261fe55ce5cef02ecb9c4628b07084d 100644 (file)
@@ -21,10 +21,9 @@ sub get_git_dir ($$) {
        } else { # implicit --cwd, quiet errors
                open $opt->{2}, '>', '/dev/null' or die "open /dev/null: $!";
        }
-       my ($r, $pid) = popen_rd($cmd, {GIT_DIR => undef}, $opt);
+       my $r = popen_rd($cmd, {GIT_DIR => undef}, $opt);
        chomp(my $gd = do { local $/; <$r> });
-       waitpid($pid, 0) == $pid or die "BUG: waitpid @$cmd ($!)";
-       $? == 0 ? $gd : undef;
+       close($r) ? $gd : undef;
 }
 
 sub solver_user_cb { # called by solver when done