]> Sergey Matveev's repositories - public-inbox.git/commitdiff
v2writable: nproc_shards: subtract 1 from given value
authorEric Wong <e@yhbt.net>
Sun, 2 Feb 2020 06:52:15 +0000 (06:52 +0000)
committerEric Wong <e@yhbt.net>
Sun, 2 Feb 2020 17:29:50 +0000 (17:29 +0000)
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.

lib/PublicInbox/V2Writable.pm
t/xcpdb-reshard.t

index 8ad71b54ee6fe7088a64e95637309ce914e9c790..37d27302565e17b66586b00e5742a6b2ef451f41 100644 (file)
@@ -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
index 9f0034f1581305b5c32ab29f463876385087790a..5fce5ead7612b1b81aa5a80bfd93db9cfdc03ee7 100644 (file)
@@ -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;