about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2020-11-29 05:09:34 +0000
committerEric Wong <e@80x24.org>2020-11-29 06:41:59 +0000
commit33f80a367325f3dac983633cb0a59946205776c2 (patch)
tree02563a60f73fe433eb59d91ad8b16fa5cad33228
parentbdef958bdccc4b1d11cd8408a5c29167b5385dc0 (diff)
downloadpublic-inbox-33f80a367325f3dac983633cb0a59946205776c2.tar.gz
Otherwise, any explicitly set shard counts were ignored and
we'd be counting CPUs every single time.
-rw-r--r--lib/PublicInbox/V2Writable.pm16
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm
index a3938b56..e9a43000 100644
--- a/lib/PublicInbox/V2Writable.pm
+++ b/lib/PublicInbox/V2Writable.pm
@@ -65,13 +65,21 @@ sub nproc_shards ($) {
 
 sub count_shards ($) {
         my ($self) = @_;
-        $self->{ibx} ? do {
+        if (my $ibx = $self->{ibx}) {
                 # always load existing shards in case core count changes:
                 # Also, shard count may change while -watch is running
-                my $srch = $self->{ibx}->search or return 0;
-                delete $self->{ibx}->{search};
+                my $srch = $ibx->search or return 0;
+                delete $ibx->{search};
                 $srch->{nshard} // 0
-        } : $self->{nshard}; # self->{nshard} is for ExtSearchIdx
+        } else { # ExtSearchIdx
+                $self->{nshard} // do {
+                        if ($self->xdb_sharded) {
+                                $self->{nshard} // die 'BUG: {nshard} unset';
+                        } else {
+                                0;
+                        }
+                }
+        }
 }
 
 sub new {