about summary refs log tree commit homepage
path: root/lib/PublicInbox/Git.pm
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-06-10 07:04:31 +0000
committerEric Wong <e@yhbt.net>2020-06-13 07:55:45 +0000
commitf1c9ad532f8dd46df172cfde85329a6e00ed1eab (patch)
tree0ea94c773af1126d54fc2f39e71f71a61985aeed /lib/PublicInbox/Git.pm
parent3c7c389f514f9123667926af1613b5c79833085c (diff)
downloadpublic-inbox-f1c9ad532f8dd46df172cfde85329a6e00ed1eab.tar.gz
Trying to avoid a circular reference by relying on $ibx object
here makes no sense, since skipping GitCatAsync::close will
result in an FD leak, anyways.  So keep GitAsyncCat contained to
git-only operations, since we'll be using it for Solver in the
distant feature.
Diffstat (limited to 'lib/PublicInbox/Git.pm')
-rw-r--r--lib/PublicInbox/Git.pm3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm
index b3ae2b81..60236afe 100644
--- a/lib/PublicInbox/Git.pm
+++ b/lib/PublicInbox/Git.pm
@@ -283,6 +283,9 @@ sub qx {
 # returns true if there are pending "git cat-file" processes
 sub cleanup {
         my ($self) = @_;
+        if (my $ac = $self->{async_cat}) {
+                $ac->close; # PublicInbox::GitAsyncCat::close -> EPOLL_CTL_DEL
+        }
         cat_async_wait($self);
         _destroy($self, qw(cat_rbuf in out pid));
         _destroy($self, qw(chk_rbuf in_c out_c pid_c err_c));