]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/HTTP.pm
www_stream: fix search for new.html endpoint
[public-inbox.git] / lib / PublicInbox / HTTP.pm
index 800b2401e3cb6b2fc70ea963e3f9738bc7ddd05c..e19c592c99612ae29960676e5112166d5f5642eb 100644 (file)
@@ -16,7 +16,6 @@ use Fcntl qw(:seek);
 use Plack::HTTPParser qw(parse_http_request); # XS or pure Perl
 use HTTP::Status qw(status_message);
 use HTTP::Date qw(time2str);
-use Time::HiRes qw(clock_gettime CLOCK_MONOTONIC);
 use Scalar::Util qw(weaken);
 use IO::File;
 use constant {
@@ -26,8 +25,6 @@ use constant {
        CHUNK_MAX_HDR => 256,
 };
 
-sub now () { clock_gettime(CLOCK_MONOTONIC) }
-
 # FIXME: duplicated code with NNTP.pm, layering violation
 my $WEAKEN = {}; # string(inbox) -> inbox
 my $weakt;
@@ -226,7 +223,10 @@ sub chunked_wcb ($) {
                return if $_[0] eq '';
                more($self, sprintf("%x\r\n", bytes::length($_[0])));
                more($self, $_[0]);
-               $self->write("\r\n");
+
+               # use $self->write("\n\n") if you care about real-time
+               # streaming responses, public-inbox WWW does not.
+               more($self, "\r\n");
        }
 }
 
@@ -270,17 +270,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 $end = now() + 0.1;
                while ($forward && defined(my $buf = $forward->getline)) {
                        $write->($buf);
                        last if $self->{closed};
                        if ($self->{write_buf_size}) {
                                $self->write($self->{pull});
-                               return;
-                       } elsif (now() > $end) {
+                       } else {
                                PublicInbox::EvCleanup::asap($self->{pull});
-                               return;
                        }
+                       return;
                }
                $self->{forward} = $self->{pull} = undef;
                $forward->close if $forward; # avoid recursion