about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/GitAsyncCat.pm11
1 files changed, 2 insertions, 9 deletions
diff --git a/lib/PublicInbox/GitAsyncCat.pm b/lib/PublicInbox/GitAsyncCat.pm
index 0b777204..e618d366 100644
--- a/lib/PublicInbox/GitAsyncCat.pm
+++ b/lib/PublicInbox/GitAsyncCat.pm
@@ -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);