diff options
author | Eric Wong <e@80x24.org> | 2021-01-24 22:41:58 -0800 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-01-26 18:51:31 +0000 |
commit | da86f10a548d4cce25f91bb4063f82ecbbe441a1 (patch) | |
tree | e19b26c90c73a05fd08f5f9796fb5fcb57563200 /lib | |
parent | 99d3f175072a8ef062ba6335a3ceb267ba89c12b (diff) | |
download | public-inbox-da86f10a548d4cce25f91bb4063f82ecbbe441a1.tar.gz |
Mainly around fork() calls, but some nearby places as well.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/PublicInbox/Spawn.pm | 7 | ||||
-rw-r--r-- | lib/PublicInbox/TestCommon.pm | 10 | ||||
-rw-r--r-- | lib/PublicInbox/Watch.pm | 2 |
3 files changed, 8 insertions, 11 deletions
diff --git a/lib/PublicInbox/Spawn.pm b/lib/PublicInbox/Spawn.pm index 86f66605..ef4885c1 100644 --- a/lib/PublicInbox/Spawn.pm +++ b/lib/PublicInbox/Spawn.pm @@ -352,8 +352,7 @@ sub which ($) { sub spawn ($;$$) { my ($cmd, $env, $opts) = @_; - my $f = which($cmd->[0]); - defined $f or die "$cmd->[0]: command not found\n"; + my $f = which($cmd->[0]) // die "$cmd->[0]: command not found\n"; my @env; $opts ||= {}; @@ -365,7 +364,7 @@ sub spawn ($;$$) { for my $child_fd (0..2) { my $parent_fd = $opts->{$child_fd}; if (defined($parent_fd) && $parent_fd !~ /\A[0-9]+\z/) { - defined(my $fd = fileno($parent_fd)) or + my $fd = fileno($parent_fd) // die "$parent_fd not an IO GLOB? $!"; $parent_fd = $fd; } @@ -374,7 +373,7 @@ sub spawn ($;$$) { my $rlim = []; foreach my $l (@RLIMITS) { - defined(my $v = $opts->{$l}) or next; + my $v = $opts->{$l} // next; my $r = eval "require BSD::Resource; BSD::Resource::$l();"; unless (defined $r) { warn "$l undefined by BSD::Resource: $@\n"; diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm index 16ae2650..40c2dc9e 100644 --- a/lib/PublicInbox/TestCommon.pm +++ b/lib/PublicInbox/TestCommon.pm @@ -254,8 +254,7 @@ sub run_script ($;$$) { my $cmd = [ key2script($key), @argv ]; my $pid = PublicInbox::Spawn::spawn($cmd, $env, $spawn_opt); if (defined $pid) { - my $r = waitpid($pid, 0); - defined($r) or die "waitpid: $!"; + my $r = waitpid($pid, 0) // die "waitpid: $!"; $r == $pid or die "waitpid: expected $pid, got $r"; } } else { # localize and run everything in the same process: @@ -367,7 +366,7 @@ sub start_script { } } if (@paths) { - defined($tail_pid = fork) or die "fork: $!\n"; + $tail_pid = fork // die "fork: $!"; if ($tail_pid == 0) { # make sure files exist, first open my $fh, '>>', $_ for @paths; @@ -378,7 +377,7 @@ sub start_script { wait_for_tail($tail_pid, scalar @paths); } } - defined(my $pid = fork) or die "fork: $!\n"; + my $pid = fork // die "fork: $!\n"; if ($pid == 0) { eval { PublicInbox::DS->Reset }; # pretend to be systemd (cf. sd_listen_fds(3)) @@ -440,8 +439,7 @@ sub join { my ($self, $sig) = @_; my $pid = delete $self->{pid} or return; CORE::kill($sig, $pid) if defined $sig; - my $ret = waitpid($pid, 0); - defined($ret) or die "waitpid($pid): $!"; + my $ret = waitpid($pid, 0) // die "waitpid($pid): $!"; $ret == $pid or die "waitpid($pid) != $ret"; } diff --git a/lib/PublicInbox/Watch.pm b/lib/PublicInbox/Watch.pm index 1de5018d..2b44ba43 100644 --- a/lib/PublicInbox/Watch.pm +++ b/lib/PublicInbox/Watch.pm @@ -626,7 +626,7 @@ sub imap_idle_fork ($$) { my ($url, $intvl) = @$url_intvl; pipe(my ($r, $w)) or die "pipe: $!"; my $seed = rand(0xffffffff); - defined(my $pid = fork) or die "fork: $!"; + my $pid = fork // die "fork: $!"; if ($pid == 0) { srand($seed); eval { Net::SSLeay::randomize() }; |