+sub cat_async ($$$;$) {
+ my ($self, $req, $cb, $arg) = @_;
+ my $inflight = $self->{inflight};
+
+ # {wbuf} is rare, I hope:
+ cat_async_step($self, $inflight) if $self->{wbuf};
+
+ if (!$self->write(\"$req\n")) {
+ $self->fail("gcf2c write: $!") if !$self->{sock};
+ }
+ push @$inflight, $req, $cb, $arg;
+}
+
+# ensure PublicInbox::Git::cat_async_step never calls cat_async_retry