about summary refs log tree commit homepage
path: root/lib/PublicInbox/Git.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2023-01-25 10:18:33 +0000
committerEric Wong <e@80x24.org>2023-01-26 02:18:12 +0000
commit3a709083fd01cbe0c1f679e73e40e44b0e5e3840 (patch)
tree0bfa586087d1c8f75e52b798f6b61cf9ec1a7dbd /lib/PublicInbox/Git.pm
parent24f55535e78be0f1fa394bcd1aebc8c027e937c7 (diff)
downloadpublic-inbox-3a709083fd01cbe0c1f679e73e40e44b0e5e3840.tar.gz
While most uses of ->DESTROY happens in a predictable order in
long-lived daemons, process teardown on exit is chaotic and not
subject to ordering guarantees, so we must keep both ends of a
`git cat-file --batch*' pipe at the same level in the object
hierarchy.

Drop an old Carp import while I'm in the area.
Diffstat (limited to 'lib/PublicInbox/Git.pm')
-rw-r--r--lib/PublicInbox/Git.pm1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm
index ff3ac40f..a3813bf2 100644
--- a/lib/PublicInbox/Git.pm
+++ b/lib/PublicInbox/Git.pm
@@ -156,6 +156,7 @@ sub _bidi_pipe {
                 $self->{$err} = $fh;
                 $rdr->{2} = $fh;
         }
+        # see lib/PublicInbox/ProcessPipe.pm for why we don't use that here
         my ($in_r, $p) = popen_rd(\@cmd, undef, $rdr);
         awaitpid($self->{$pid} = $p, undef);
         $self->{"$pid.owner"} = $$;