about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-06-01 03:27:55 +0000
committerEric Wong <e@80x24.org>2019-06-01 03:31:13 +0000
commitcae0b428a91712ecc0ef28d6c56dcf252b0206f8 (patch)
treefa8a68f99e83fe13436252e7e7947606ac684f23
parentf44196a157cc8d806b142230d4ecf5f2687c0352 (diff)
downloadpublic-inbox-cae0b428a91712ecc0ef28d6c56dcf252b0206f8.tar.gz
No reason to leave that (usually) empty file open after killing off
"cat-file --batch-check".  This wasn't an unbound leak, though,
as respawning the --batch-check process would've clobbered the
old err_c file.
-rw-r--r--lib/PublicInbox/Git.pm5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm
index 9a38d7c8..9014e021 100644
--- a/lib/PublicInbox/Git.pm
+++ b/lib/PublicInbox/Git.pm
@@ -211,9 +211,10 @@ sub check {
 }
 
 sub _destroy {
-        my ($self, $in, $out, $pid) = @_;
+        my ($self, $in, $out, $pid, $err) = @_;
         my $p = delete $self->{$pid} or return;
         delete @$self{($in, $out)};
+        delete $self->{$err} if $err; # `err_c'
         waitpid $p, 0;
 }
 
@@ -243,7 +244,7 @@ sub qx {
 sub cleanup {
         my ($self) = @_;
         _destroy($self, qw(in out pid));
-        _destroy($self, qw(in_c out_c pid_c));
+        _destroy($self, qw(in_c out_c pid_c err_c));
         !!($self->{pid} || $self->{pid_c});
 }