+ $self->close if !$self->{in} || !$self->{sock}; # process died
+ my $inflight = $self->{inflight};
+ if ($inflight && @$inflight) {
+ cat_async_step($self, $inflight);
+ return $self->close unless $self->{in}; # process died
+
+ # ok, more to do, requeue for fairness
+ $self->requeue if @$inflight || exists($self->{rbuf});
+ }
+}
+
+sub DESTROY {
+ my ($self) = @_;
+ delete $self->{sock}; # if outside event_loop
+ PublicInbox::Git::DESTROY($self);