lib/PublicInbox/HTTP.pm | 5 ++++- diff --git a/lib/PublicInbox/HTTP.pm b/lib/PublicInbox/HTTP.pm index 6df1c3fc566aebf1688fd3f1665542297279a684..e0ed2d15e95e6bba6eb3662ec5048619717affb5 100644 --- a/lib/PublicInbox/HTTP.pm +++ b/lib/PublicInbox/HTTP.pm @@ -271,8 +271,11 @@ 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; + } elsif ((--$n) <= 0) { + PublicInbox::EvCleanup::asap($self->{pull}); return; } }