diff options
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r-- | lib/PublicInbox/V2Writable.pm | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index c8869bda..51723e55 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -204,9 +204,13 @@ sub idx_init { # need to create all parts before initializing msgmap FD my $max = $self->{partitions} - 1; - @{$self->{idx_parts}} = map { - PublicInbox::SearchIdxPart->new($self, $_, $skel); - } (0..$max); + + # idx_parts must be visible to all forked processes + my $idx = $self->{idx_parts} = []; + for my $i (0..$max) { + push @$idx, + PublicInbox::SearchIdxPart->new($self, $i, $skel); + } # Now that all subprocesses are up, we can open the FD for SQLite: $skel->_msgmap_init->{dbh}->begin_work; |