]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/GitAsyncCat.pm
git_async_cat: unref pipes on EOF from git->cleanup
[public-inbox.git] / lib / PublicInbox / GitAsyncCat.pm
index 0b777204a7ccfe021fe102c3218c2af4de5565ce..e618d366a8bc31dbbcafd29b702160787d267fcb 100644 (file)
@@ -24,7 +24,8 @@ sub _add {
 
 sub event_step {
        my ($self) = @_;
-       my $git = $self->{git} or return; # ->close-ed
+       my $git = $self->{git};
+       return $self->close if ($git->{in} // 0) != ($self->{sock} // 1);
        my $inflight = $git->{inflight};
        if ($inflight && @$inflight) {
                $git->cat_async_step($inflight);
@@ -32,14 +33,6 @@ sub event_step {
        }
 }
 
-sub close {
-       my ($self) = @_;
-       if (my $git = delete $self->{git}) {
-               delete $git->{async_cat};
-       }
-       $self->SUPER::close; # PublicInbox::DS::close
-}
-
 sub git_async_cat ($$$$) {
        my ($git, $oid, $cb, $arg) = @_;
        $git->cat_async($oid, $cb, $arg);