diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/PublicInbox/Daemon.pm | 6 | ||||
-rw-r--r-- | lib/PublicInbox/ParentPipe.pm | 23 |
2 files changed, 2 insertions, 27 deletions
diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm index 45475183..000ba169 100644 --- a/lib/PublicInbox/Daemon.pm +++ b/lib/PublicInbox/Daemon.pm @@ -17,7 +17,7 @@ STDERR->autoflush(1); 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); @@ -468,8 +468,6 @@ sub master_quit ($) { 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; @@ -603,7 +601,7 @@ sub daemon_loop ($$$$) { 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; diff --git a/lib/PublicInbox/ParentPipe.pm b/lib/PublicInbox/ParentPipe.pm deleted file mode 100644 index 538b5632..00000000 --- a/lib/PublicInbox/ParentPipe.pm +++ /dev/null @@ -1,23 +0,0 @@ -# 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; |