diff options
author | Eric Wong <e@80x24.org> | 2021-02-05 05:13:54 +0500 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-02-05 00:16:38 +0000 |
commit | da143a9393faa4956403b3f7a4c6ecb5ae3bcf01 (patch) | |
tree | 864f9829aa79e68497e387057b37953835f48b85 /lib/PublicInbox/HTTPD/Async.pm | |
parent | e3c82310f5df24a42a0dc3c08b97b409a185b3a3 (diff) | |
download | public-inbox-da143a9393faa4956403b3f7a4c6ecb5ae3bcf01.tar.gz |
While Perl tie is nice for some things, getting IO::Handle->blocking to work transparently with it doesn't seem possible at the moment. Add some examples in t/spawn.t for future hackers. Fixes: 22e51bd9da476fa9 ("qspawn: switch to ProcessPipe via popen_rd")
Diffstat (limited to 'lib/PublicInbox/HTTPD/Async.pm')
-rw-r--r-- | lib/PublicInbox/HTTPD/Async.pm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/PublicInbox/HTTPD/Async.pm b/lib/PublicInbox/HTTPD/Async.pm index bd1fd8fa..1de9501d 100644 --- a/lib/PublicInbox/HTTPD/Async.pm +++ b/lib/PublicInbox/HTTPD/Async.pm @@ -37,7 +37,8 @@ sub new { arg => $arg, # arg for $cb end_obj => $end_obj, # like END{}, can ->event_step }, $class; - IO::Handle::blocking($io, 0); + my $pp = tied *$io; + $pp->{fh}->blocking(0) // die "$io->blocking(0): $!"; $self->SUPER::new($io, EPOLLIN | EPOLLET); } |