about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-03-12 01:47:59 +0000
committerEric Wong <e@80x24.org>2019-04-04 09:13:58 +0000
commit07f770c321474751550c4d73c65c27b2b197ac35 (patch)
tree018ca8e4317dfc373ffa9082fbd732d5130f825d
parent7661a5732ebf4470339c1293b2ea32082af887be (diff)
downloadpublic-inbox-07f770c321474751550c4d73c65c27b2b197ac35.tar.gz
Our high-level config already treats single limits as a
soft==hard limit for limiters; so stop handling that redundant
in the low-level spawn() sub.
-rw-r--r--lib/PublicInbox/Spawn.pm8
-rw-r--r--t/spawn.t3
2 files changed, 3 insertions, 8 deletions
diff --git a/lib/PublicInbox/Spawn.pm b/lib/PublicInbox/Spawn.pm
index fd981608..7b0f3bdd 100644
--- a/lib/PublicInbox/Spawn.pm
+++ b/lib/PublicInbox/Spawn.pm
@@ -205,18 +205,12 @@ sub spawn ($;$$) {
 
         foreach my $l (RLIMITS()) {
                 defined(my $v = $opts->{$l}) or next;
-                my ($soft, $hard);
-                if (ref($v)) {
-                        ($soft, $hard) = @$v;
-                } else {
-                        $soft = $hard = $v;
-                }
                 my $r = eval "require BSD::Resource; BSD::Resource::$l();";
                 unless (defined $r) {
                         warn "$l undefined by BSD::Resource: $@\n";
                         next;
                 }
-                push @$rlim, $r, $soft, $hard;
+                push @$rlim, $r, @$v;
         }
         my $pid = pi_fork_exec($in, $out, $err, $f, $cmd, \@env, $rlim);
         $pid < 0 ? undef : $pid;
diff --git a/t/spawn.t b/t/spawn.t
index 5abedc96..88404282 100644
--- a/t/spawn.t
+++ b/t/spawn.t
@@ -100,7 +100,8 @@ SKIP: {
         my ($r, $w);
         pipe($r, $w) or die "pipe: $!";
         my $cmd = ['sh', '-c', 'while true; do :; done'];
-        my $opt = { RLIMIT_CPU => [ 1, 1 ], RLIMIT_CORE => 0, 1 => fileno($w) };
+        my $fd = fileno($w);
+        my $opt = { RLIMIT_CPU => [ 1, 1 ], RLIMIT_CORE => [ 0, 0 ], 1 => $fd };
         my $pid = spawn($cmd, undef, $opt);
         close $w or die "close(w): $!";
         my $rset = '';