From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 7C89D1FA18 for ; Thu, 20 Aug 2020 20:24:59 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 08/23] xapcmd: simplify {reindex} parameter passing Date: Thu, 20 Aug 2020 20:24:42 +0000 Message-Id: <20200820202457.21042-9-e@yhbt.net> In-Reply-To: <20200820202457.21042-1-e@yhbt.net> References: <20200820202457.21042-1-e@yhbt.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: No need to localize it, here, since we can just refer to it in the `$opt' hashref. Hopefully this improves readability for others like it does for me. I sometimes wonder if the concept of a stack in high-level languages is even necessary... --- lib/PublicInbox/Xapcmd.pm | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/lib/PublicInbox/Xapcmd.pm b/lib/PublicInbox/Xapcmd.pm index 46548a94..fffac99c 100644 --- a/lib/PublicInbox/Xapcmd.pm +++ b/lib/PublicInbox/Xapcmd.pm @@ -19,7 +19,6 @@ our @COMPACT_OPT = qw(jobs|j=i quiet|q blocksize|b=s no-full|n fuller|F); sub commit_changes ($$$$) { my ($ibx, $im, $tmp, $opt) = @_; my $reshard = $opt->{reshard}; - my $reindex = $opt->{reindex}; $SIG{INT} or die 'BUG: $SIG{INT} not handled'; my @old_shard; @@ -102,17 +101,17 @@ sub runnable_or_die ($) { } sub prepare_reindex ($$$) { - my ($ibx, $im, $reindex) = @_; + my ($ibx, $im, $opt) = @_; if ($ibx->version == 1) { my $dir = $ibx->search->xdir(1); my $xdb = $PublicInbox::Search::X{Database}->new($dir); if (my $lc = $xdb->get_metadata('last_commit')) { - $reindex->{from} = $lc; + $opt->{reindex}->{from} = $lc; } } else { # v2 my $max; $im->git_dir_latest(\$max) or return; - my $from = $reindex->{from}; + my $from = $opt->{reindex}->{from}; my $mm = $ibx->mm; my $v = PublicInbox::Search::SCHEMA_VERSION(); foreach my $i (0..$max) { @@ -238,14 +237,14 @@ sub prepare_run { sub check_compact () { runnable_or_die($XAPIAN_COMPACT) } sub _run { - my ($ibx, $cb, $opt, $reindex) = @_; + my ($ibx, $cb, $opt) = @_; my $im = $ibx->importer(0); $im->lock_acquire; my ($tmp, $queue) = prepare_run($ibx, $opt); # fine-grained locking if we prepare for reindex if (!$opt->{-coarse_lock}) { - prepare_reindex($ibx, $im, $reindex); + prepare_reindex($ibx, $im, $opt); $im->lock_release; } @@ -262,19 +261,18 @@ sub run { defined(my $dir = $ibx->{inboxdir}) or die "no inboxdir defined\n"; -d $dir or die "inboxdir=$dir does not exist\n"; check_compact() if $opt->{compact} && $ibx->search; - my $reindex; # v1:{ from => $x40 }, v2:{ from => [ $x40, $x40, .. ] } } if (!$opt->{-coarse_lock}) { - $reindex = $opt->{reindex} = { # per-epoch ranges for v2 - from => $ibx->version == 1 ? '' : [], - }; + # per-epoch ranges for v2 + # v1:{ from => $OID }, v2:{ from => [ $OID, $OID, $OID ] } } + $opt->{reindex} = { from => $ibx->version == 1 ? '' : [] }; PublicInbox::SearchIdx::load_xapian_writable(); } local %SIG = %SIG; setup_signals(); $ibx->umask_prepare; - $ibx->with_umask(\&_run, $ibx, $cb, $opt, $reindex); + $ibx->with_umask(\&_run, $ibx, $cb, $opt); } sub cpdb_retryable ($$) {