about summary refs log tree commit homepage
path: root/lib/PublicInbox/Daemon.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-01-10 12:15:00 +0000
committerEric Wong <e@80x24.org>2021-01-12 03:51:42 +0000
commitb90e8d6e02852c47d0c08198d8c7afb5dbe008d7 (patch)
treeea3b399fba66acbd5b67bb5d1b983340ddcc17d3 /lib/PublicInbox/Daemon.pm
parentf4cf089b427d07bedb80fcfbe79d84234ad92a75 (diff)
downloadpublic-inbox-b90e8d6e02852c47d0c08198d8c7afb5dbe008d7.tar.gz
This lets us call dwaitpid long before a process exits
and not have to wait around for it.

This is advantageous for lei where we can run dwaitpid on the
pager as soon as we spawn it, instead of waiting for a client
socket to go away on DESTROY.
Diffstat (limited to 'lib/PublicInbox/Daemon.pm')
-rw-r--r--lib/PublicInbox/Daemon.pm10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm
index 4dcb5fb6..4b738b7c 100644
--- a/lib/PublicInbox/Daemon.pm
+++ b/lib/PublicInbox/Daemon.pm
@@ -77,7 +77,7 @@ sub accept_tls_opt ($) {
 sub daemon_prepare ($) {
         my ($default_listen) = @_;
         my $listener_names = {}; # sockname => IO::Handle
-        $oldset = PublicInbox::Sigfd::block_signals();
+        $oldset = PublicInbox::DS::block_signals();
         @CMD = ($0, @ARGV);
         my ($prog) = ($CMD[0] =~ m!([^/]+)\z!g);
         my $help = <<EOF;
@@ -515,7 +515,7 @@ EOF
         };
         my $sigfd = PublicInbox::Sigfd->new($sig, 0);
         local %SIG = (%SIG, %$sig) if !$sigfd;
-        PublicInbox::Sigfd::sig_setmask($oldset) if !$sigfd;
+        PublicInbox::DS::sig_setmask($oldset) if !$sigfd;
         while (1) { # main loop
                 my $n = scalar keys %pids;
                 unless (@listeners) {
@@ -531,7 +531,7 @@ EOF
                 }
                 my $want = $worker_processes - 1;
                 if ($n <= $want) {
-                        PublicInbox::Sigfd::block_signals() if !$sigfd;
+                        PublicInbox::DS::block_signals() if !$sigfd;
                         for my $i ($n..$want) {
                                 my $pid = fork;
                                 if (!defined $pid) {
@@ -544,7 +544,7 @@ EOF
                                         $pids{$pid} = $i;
                                 }
                         }
-                        PublicInbox::Sigfd::sig_setmask($oldset) if !$sigfd;
+                        PublicInbox::DS::sig_setmask($oldset) if !$sigfd;
                 }
 
                 if ($sigfd) { # Linux and IO::KQueue users:
@@ -632,7 +632,7 @@ sub daemon_loop ($$$$) {
         if (!$sigfd) {
                 # wake up every second to accept signals if we don't
                 # have signalfd or IO::KQueue:
-                PublicInbox::Sigfd::sig_setmask($oldset);
+                PublicInbox::DS::sig_setmask($oldset);
                 PublicInbox::DS->SetLoopTimeout(1000);
         }
         PublicInbox::DS->EventLoop;