]> Sergey Matveev's repositories - public-inbox.git/commitdiff
spawn: make @RLIMITS an array
authorEric Wong <e@yhbt.net>
Wed, 1 Jul 2020 21:06:15 +0000 (21:06 +0000)
committerEric Wong <e@yhbt.net>
Thu, 2 Jul 2020 20:36:17 +0000 (20:36 +0000)
Making the RLIMITS list a function doesn't allow constant
folding, so just make it an array accessible to other modules.

lib/PublicInbox/Qspawn.pm
lib/PublicInbox/Spawn.pm

index c09e8d2c227b0b6bc01ddc1a13598d72c73d6c72..d395a10b3b156b1fac05facbad8a4eca04ef44c2 100644 (file)
@@ -48,7 +48,7 @@ sub _do_spawn {
        my ($cmd, $cmd_env, $opt) = @{delete $self->{args}};
        my %o = %{$opt || {}};
        $self->{limiter} = $limiter;
-       foreach my $k (PublicInbox::Spawn::RLIMITS()) {
+       foreach my $k (@PublicInbox::Spawn::RLIMITS) {
                if (defined(my $rlimit = $limiter->{$k})) {
                        $o{$k} = $rlimit;
                }
@@ -358,7 +358,7 @@ sub new {
 
 sub setup_rlimit {
        my ($self, $name, $config) = @_;
-       foreach my $rlim (PublicInbox::Spawn::RLIMITS()) {
+       foreach my $rlim (@PublicInbox::Spawn::RLIMITS) {
                my $k = lc($rlim);
                $k =~ tr/_//d;
                $k = "publicinboxlimiter.$name.$k";
index f90d8f6d3dd2d9d7f1ea6a73c8f41a70eaf718bf..ba6e73675fe4a50483b6f1606e917ea702aa4511 100644 (file)
@@ -18,7 +18,7 @@ use base qw(Exporter);
 use Symbol qw(gensym);
 use PublicInbox::ProcessPipe;
 our @EXPORT_OK = qw/which spawn popen_rd/;
-sub RLIMITS () { qw(RLIMIT_CPU RLIMIT_CORE RLIMIT_DATA) }
+our @RLIMITS = qw(RLIMIT_CPU RLIMIT_CORE RLIMIT_DATA);
 
 my $vfork_spawn = <<'VFORK_SPAWN';
 #include <sys/types.h>
@@ -209,7 +209,7 @@ sub spawn ($;$$) {
        }
        my $rlim = [];
 
-       foreach my $l (RLIMITS()) {
+       foreach my $l (@RLIMITS) {
                defined(my $v = $opts->{$l}) or next;
                my $r = eval "require BSD::Resource; BSD::Resource::$l();";
                unless (defined $r) {