From: Eric Wong Date: Sun, 2 Feb 2020 06:52:15 +0000 (+0000) Subject: v2writable: nproc_shards: subtract 1 from given value X-Git-Tag: v1.3.0~30 X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=commitdiff_plain;h=2710d3105e70ff467eff9e977325628b4e9dd1c5 v2writable: nproc_shards: subtract 1 from given value 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. --- 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;