about summary refs log tree commit
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-02-02 06:52:15 +0000
committerEric Wong <e@yhbt.net>2020-02-02 17:29:50 +0000
commit2710d3105e70ff467eff9e977325628b4e9dd1c5 (patch)
treebd394015cdcc32a01b59fe216d46bc5fd6b3ec48
parent2b359355ae5839a5597ba81a40194bb3503118a0 (diff)
downloadpublic-inbox-2710d3105e70ff467eff9e977325628b4e9dd1c5.tar.gz
This is to be consistent with the `nproc(1)' code path.  It also
quiets down a warning from Admin when "-j $JOBS" is specified,
since the master process (which distributes work to shards and
handles OverIdx and Msgmap) is considered a job on its own.
-rw-r--r--lib/PublicInbox/V2Writable.pm9
-rw-r--r--t/xcpdb-reshard.t2
2 files changed, 3 insertions, 8 deletions
diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm
index 8ad71b54..37d27302 100644
--- a/lib/PublicInbox/V2Writable.pm
+++ b/lib/PublicInbox/V2Writable.pm
@@ -34,13 +34,8 @@ our $NPROC_MAX_DEFAULT = 4;
 
 sub nproc_shards ($) {
         my ($creat_opt) = @_;
-        if (ref($creat_opt) eq 'HASH') {
-                if (defined(my $n = $creat_opt->{nproc})) {
-                        return $n
-                }
-        }
-
-        my $n = $ENV{NPROC};
+        my $n = $creat_opt->{nproc} if ref($creat_opt) eq 'HASH';
+        $n //= $ENV{NPROC};
         if (!$n) {
                 chomp($n = `nproc 2>/dev/null`);
                 # assume 2 cores if GNU nproc(1) is not available
diff --git a/t/xcpdb-reshard.t b/t/xcpdb-reshard.t
index 9f0034f1..5fce5ead 100644
--- a/t/xcpdb-reshard.t
+++ b/t/xcpdb-reshard.t
@@ -40,7 +40,7 @@ for my $i (1..$ndoc) {
 }
 $im->done;
 my @shards = grep(m!/\d+\z!, glob("$ibx->{inboxdir}/xap*/*"));
-is(scalar(@shards), $nproc, 'got expected shards');
+is(scalar(@shards), $nproc - 1, 'got expected shards');
 my $orig = $ibx->over->query_xover(1, $ndoc);
 my %nums = map {; "$_->{num}" => 1 } @$orig;