X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FHTTPD.pm;h=a9f55ff612e02d89e43a6af1bbab8667b51c6913;hb=5afb24f06627641e3fed608e807b5ab628cda348;hp=78efaa50b417177139333c52143247685e70757f;hpb=85c83085eeb14be7e7b9a395fa9408241ecb8244;p=public-inbox.git
diff --git a/lib/PublicInbox/HTTPD.pm b/lib/PublicInbox/HTTPD.pm
index 78efaa50..a9f55ff6 100644
--- a/lib/PublicInbox/HTTPD.pm
+++ b/lib/PublicInbox/HTTPD.pm
@@ -1,17 +1,16 @@
-# Copyright (C) 2016 all contributors
+# Copyright (C) 2016-2020 all contributors
# License: AGPL-3.0+
+# wraps a listen socket for HTTP and links it to the PSGI app in
+# public-inbox-httpd
package PublicInbox::HTTPD;
use strict;
use warnings;
use Plack::Util;
-require PublicInbox::HTTPD::Async;
-require PublicInbox::Daemon;
+use PublicInbox::HTTPD::Async;
+use PublicInbox::Daemon;
-sub pi_httpd_async {
- my ($io, $cb) = @_;
- PublicInbox::HTTPD::Async->new($io, $cb);
-}
+sub pi_httpd_async { PublicInbox::HTTPD::Async->new(@_) }
sub new {
my ($class, $sock, $app) = @_;
@@ -30,12 +29,16 @@ sub new {
'psgi.run_once' => Plack::Util::FALSE,
'psgi.multithread' => Plack::Util::FALSE,
'psgi.multiprocess' => Plack::Util::TRUE,
- 'psgix.harakiri'=> Plack::Util::FALSE,
+
+ # We don't use this anywhere, but we can support
+ # other PSGI apps which might use it:
'psgix.input.buffered' => Plack::Util::TRUE,
- 'pi-httpd.async' => do {
- no warnings 'once';
- *pi_httpd_async
- },
+
+ # XXX unstable API!, only GitHTTPBackend needs
+ # this to limit git-http-backend(1) parallelism.
+ # We also check for the truthiness of this to
+ # detect when to use git_async_cat for slow blobs
+ 'pi-httpd.async' => \&pi_httpd_async
);
bless {
app => $app,