X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FHTTPD.pm;h=b193c9aeeff190abae0c5bee4b363855b61a77fc;hb=af0b0fb7a454470a32c452119d0392e0dedb3fe1;hp=78efaa50b417177139333c52143247685e70757f;hpb=85c83085eeb14be7e7b9a395fa9408241ecb8244;p=public-inbox.git diff --git a/lib/PublicInbox/HTTPD.pm b/lib/PublicInbox/HTTPD.pm index 78efaa50..b193c9ae 100644 --- a/lib/PublicInbox/HTTPD.pm +++ b/lib/PublicInbox/HTTPD.pm @@ -1,17 +1,16 @@ -# Copyright (C) 2016 all contributors +# Copyright (C) 2016-2021 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,