]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/HTTP.pm
http: always yield on getline/body
[public-inbox.git] / lib / PublicInbox / HTTP.pm
index 6df1c3fc566aebf1688fd3f1665542297279a684..c141fc896d0538875ca5a76c26c413ec910c4652 100644 (file)
@@ -267,14 +267,15 @@ sub getline_response {
                my $forward = $self->{forward};
                # limit our own running time for fairness with other
                # clients and to avoid buffering too much:
-               my $n = 100;
                while ($forward && defined(my $buf = $forward->getline)) {
                        $write->($buf);
                        last if $self->{closed};
-                       if ((--$n) <= 0 || $self->{write_buf_size}) {
+                       if ($self->{write_buf_size}) {
                                $self->write($self->{pull});
-                               return;
+                       } else {
+                               PublicInbox::EvCleanup::asap($self->{pull});
                        }
+                       return;
                }
                $self->{forward} = $self->{pull} = undef;
                $forward->close if $forward; # avoid recursion