lib/PublicInbox/NewsWWW.pm
lib/PublicInbox/Over.pm
lib/PublicInbox/OverIdx.pm
-lib/PublicInbox/ParentPipe.pm
lib/PublicInbox/ProcessPipe.pm
lib/PublicInbox/Qspawn.pm
lib/PublicInbox/Reply.pm
use PublicInbox::DS qw(now);
use PublicInbox::Syscall qw($SFD_NONBLOCK);
require PublicInbox::Listener;
-require PublicInbox::ParentPipe;
+use PublicInbox::EOFpipe;
use PublicInbox::Sigfd;
my @CMD;
my ($set_user, $oldset);
sub master_loop {
pipe(my ($p0, $p1)) or die "failed to create parent-pipe: $!";
- # 1031: F_SETPIPE_SZ, 4096: page size
- fcntl($p1, 1031, 4096) if $^O eq 'linux';
my $set_workers = $worker_processes;
reopen_logs();
my $ignore_winch;
if ($worker_processes > 0) {
$refresh->(); # preload by default
my $fh = master_loop(); # returns if in child process
- PublicInbox::ParentPipe->new($fh, \&worker_quit);
+ PublicInbox::EOFpipe->new($fh, \&worker_quit, undef);
} else {
reopen_logs();
$set_user->() if $set_user;
+++ /dev/null
-# Copyright (C) 2016-2020 all contributors <meta@public-inbox.org>
-# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
-
-# only for PublicInbox::Daemon, allows worker processes to be
-# notified if the master process dies.
-package PublicInbox::ParentPipe;
-use strict;
-use parent qw(PublicInbox::DS);
-use PublicInbox::Syscall qw(EPOLLIN EPOLLONESHOT);
-
-sub new ($$$) {
- my ($class, $pipe, $worker_quit) = @_;
- my $self = bless { cb => $worker_quit }, $class;
- $self->SUPER::new($pipe, EPOLLIN|EPOLLONESHOT);
-}
-
-# master process died, time to call worker_quit ourselves
-sub event_step {
- $_[0]->close; # PublicInbox::DS::close
- $_[0]->{cb}->();
-}
-
-1;