X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FQspawn.pm;h=294bf0a4dde2a8446a3c1e14cce849e0260bda51;hb=aea0a8d8bf9bf26898c811bf28f023d968c39de3;hp=76e48e8126b912082166660c764d906993510b63;hpb=500a3dad334601d928e20dd9d764fb117f65103d;p=public-inbox.git diff --git a/lib/PublicInbox/Qspawn.pm b/lib/PublicInbox/Qspawn.pm index 76e48e81..294bf0a4 100644 --- a/lib/PublicInbox/Qspawn.pm +++ b/lib/PublicInbox/Qspawn.pm @@ -230,6 +230,7 @@ sub psgi_return { my $buf = ''; my $rd_hdr = sub { + # typically used for reading CGI headers # we must loop until EAGAIN for EPOLLET in HTTPD/Async.pm # We also need to check EINTR for generic PSGI servers. my $ret; @@ -250,7 +251,7 @@ sub psgi_return { my $cb = sub { my $r = $rd_hdr->() or return; - $rd_hdr = undef; + $rd_hdr = undef; # done reading headers my $filter = delete $env->{'qspawn.filter'}; if (scalar(@$r) == 3) { # error if ($async) { @@ -261,6 +262,7 @@ sub psgi_return { } $wcb->($r); } elsif ($async) { + # done reading headers, handoff to read body $fh = $wcb->($r); # scalar @$r == 2 $fh = filter_fh($fh, $filter) if $filter; $async->async_pass($env->{'psgix.io'}, $fh, \$buf);