]> Sergey Matveev's repositories - public-inbox.git/commitdiff
httpd/async: describe which ->write subs it can call
authorEric Wong <e@80x24.org>
Sat, 10 Sep 2022 08:17:23 +0000 (08:17 +0000)
committerEric Wong <e@80x24.org>
Sat, 10 Sep 2022 19:50:52 +0000 (19:50 +0000)
I initially wanted to rename GzipFilter->write to
GzipFilter->writev to reflect the multi-argument nature of the
sub, and it wasn't worth the memory to maintain an alias.

lib/PublicInbox/HTTPD/Async.pm

index 1651da88ac034cfcc022f8739b7ab25246b09975..cb76cfab4a83317284ed25456ec9dd346ea80db1 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 #
 # XXX This is a totally unstable API for public-inbox internal use only
@@ -77,8 +77,11 @@ sub async_pass {
        # will automatically close this ($self) object.
        $http->{forward} = $self;
 
-       # write anything we overread when we were reading headers
-       $fh->write($$bref); # PublicInbox:HTTP::{chunked,identity}_wcb
+       # write anything we overread when we were reading headers.
+       # This is typically PublicInbox:HTTP::{chunked,identity}_wcb,
+       # but may be PublicInbox::GzipFilter::write.  PSGI requires
+       # *_wcb methods respond to ->write (and ->close), not ->print
+       $fh->write($$bref);
 
        # we're done with this, free this memory up ASAP since the
        # calls after this may use much memory: