From 1556c660030b7ebb4006f522026e638285e94f46 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 23 Dec 2022 11:05:15 +0000 Subject: [PATCH] httpd/async + qspawn: rename {fh} fields Use more unique names within the project to minimize confusion since these packages interact quite a bit and using identical names leads to needless confusion. --- lib/PublicInbox/HTTPD/Async.pm | 16 +++++++++------- lib/PublicInbox/Qspawn.pm | 4 ++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/PublicInbox/HTTPD/Async.pm b/lib/PublicInbox/HTTPD/Async.pm index 75b3bd50..e03daafa 100644 --- a/lib/PublicInbox/HTTPD/Async.pm +++ b/lib/PublicInbox/HTTPD/Async.pm @@ -37,7 +37,7 @@ sub new { arg => $arg, # arg for $cb end_obj => $end_obj, # like END{}, can ->event_step }, $class; - my $pp = tied *$io; + my $pp = tied *$io; # ProcessPipe $pp->{fh}->blocking(0) // die "$io->blocking(0): $!"; $self->SUPER::new($io, EPOLLIN); } @@ -54,7 +54,7 @@ sub event_step { # and 65536 is the default Linux pipe size my $r = sysread($sock, my $buf, 65536); if ($r) { - $self->{fh}->write($buf); # may call $http->close + $self->{ofh}->write($buf); # may call $http->close # let other clients get some work done, too return if $http->{sock}; # !closed @@ -63,7 +63,7 @@ sub event_step { return; # EPOLLIN means we'll be notified } - # Done! Error handling will happen in $self->{fh}->close + # Done! Error handling will happen in $self->{ofh}->close # called by end_obj->event_step handler delete $http->{forward}; $self->close; # queues end_obj->event_step to be called @@ -71,9 +71,11 @@ sub event_step { } # once this is called, all data we read is passed to the -# to the PublicInbox::HTTP instance ($http) via $fh->write +# to the PublicInbox::HTTP instance ($http) via $ofh->write +# $ofh is typically PublicInbox::HTTP::{Chunked,Identity}, but +# may be PublicInbox::GzipFilter or $PublicInbox::Qspawn::qx_fh sub async_pass { - my ($self, $http, $fh, $bref) = @_; + my ($self, $http, $ofh, $bref) = @_; # In case the client HTTP connection ($http) dies, it # will automatically close this ($self) object. $http->{forward} = $self; @@ -82,10 +84,10 @@ sub async_pass { # 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); + $ofh->write($$bref); $self->{http} = $http; - $self->{fh} = $fh; + $self->{ofh} = $ofh; } # may be called as $forward->close in PublicInbox::HTTP or EOF (event_step) diff --git a/lib/PublicInbox/Qspawn.pm b/lib/PublicInbox/Qspawn.pm index da7cd74f..6e245389 100644 --- a/lib/PublicInbox/Qspawn.pm +++ b/lib/PublicInbox/Qspawn.pm @@ -187,7 +187,7 @@ sub event_step { my ($self, $err) = @_; # $err: $! warn "psgi_{return,qx} $err" if defined($err); finish($self); - my ($fh, $qx_fh) = delete(@$self{qw(fh qx_fh)}); + my ($fh, $qx_fh) = delete(@$self{qw(qfh qx_fh)}); $fh->close if $fh; # async-only (psgi_return) } @@ -242,7 +242,7 @@ sub psgi_return_init_cb { # done reading headers, handoff to read body my $fh = $wcb->($r); # scalar @$r == 2 $fh = $filter->attach($fh) if $filter; - $self->{fh} = $fh; + $self->{qfh} = $fh; $async->async_pass($env->{'psgix.io'}, $fh, delete($self->{hdr_buf})); } else { # for synchronous PSGI servers -- 2.44.0