about summary refs log tree commit homepage
path: root/lib/PublicInbox/LeiXSearch.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2023-10-04 03:49:20 +0000
committerEric Wong <e@80x24.org>2023-10-04 17:46:36 +0000
commit39afcefde3e9cec0120776a89977da88eb217d90 (patch)
tree7dd5a76a04d6245a039800199f327be4b1992a44 /lib/PublicInbox/LeiXSearch.pm
parent2bac2c5e41de98f9aa50fbf69060a3bdef54f61f (diff)
downloadpublic-inbox-39afcefde3e9cec0120776a89977da88eb217d90.tar.gz
We already have an ->incr callback we can enhance to support
multiple counters with a single request.  Furthermore, we can
just flatten the object graph by storing counters directly in
the $lei object itself to reduce hash lookups.
Diffstat (limited to 'lib/PublicInbox/LeiXSearch.pm')
-rw-r--r--lib/PublicInbox/LeiXSearch.pm15
1 files changed, 4 insertions, 11 deletions
diff --git a/lib/PublicInbox/LeiXSearch.pm b/lib/PublicInbox/LeiXSearch.pm
index 8f63149e..1caa9d06 100644
--- a/lib/PublicInbox/LeiXSearch.pm
+++ b/lib/PublicInbox/LeiXSearch.pm
@@ -155,12 +155,6 @@ sub mset_progress {
         }
 }
 
-sub l2m_progress {
-        my ($lei, $nr_write, $nr_seen) = @_;
-        $lei->{-nr_write} += $nr_write;
-        $lei->{-nr_seen} += $nr_seen;
-}
-
 sub query_one_mset { # for --threads and l2m w/o sort
         my ($self, $ibxish) = @_;
         local $0 = "$0 query_one_mset";
@@ -354,7 +348,6 @@ sub query_remote_mboxrd {
         $self->{import_sto} = $lei->{sto} if $lei->{opt}->{'import-remote'};
         for my $uri (@$uris) {
                 $lei->{-current_url} = $uri->as_string;
-                $lei->{-nr_remote_eml} = 0;
                 my $start = time;
                 my ($q, $key) = fudge_qstr_time($lei, $uri, $qstr);
                 $uri->query_form(@qform, q => $q);
@@ -369,9 +362,9 @@ sub query_remote_mboxrd {
                         my $wait = $self->{import_sto}->wq_do('done');
                 }
                 $reap_curl->join;
+                my $nr = delete $lei->{-nr_remote_eml} // 0;
                 if ($? == 0) {
                         # don't update if no results, maybe MTA is down
-                        my $nr = $lei->{-nr_remote_eml};
                         $lei->{lss}->cfg_set($key, $start) if $key && $nr;
                         mset_progress($lei, $lei->{-current_url}, $nr, $nr);
                         next;
@@ -433,8 +426,8 @@ Error closing $lei->{ovv}->{dst}: \$!=$! \$?=$?
         }
         if ($lei->{-progress}) {
                 my $tot = $lei->{-mset_total} // 0;
-                my $nr_w = $lei->{-nr_write} // 0;
-                my $d = ($lei->{-nr_seen} // 0) - $nr_w;
+                my $nr_w = delete($lei->{-nr_write}) // 0;
+                my $d = (delete($lei->{-nr_seen}) // 0) - $nr_w;
                 my $x = "$tot matches";
                 $x .= ", $d duplicates" if $d;
                 if ($l2m) {
@@ -532,7 +525,7 @@ sub do_query {
                 incr_post_augment => [ \&incr_post_augment, $lei ],
                 '' => [ \&query_done, $lei ],
                 mset_progress => [ \&mset_progress, $lei ],
-                l2m_progress => [ \&l2m_progress, $lei ],
+                incr => [ $lei ],
                 x_it => [ $lei ],
                 child_error => [ $lei ],
                 incr_start_query => [ \&incr_start_query, $lei, $self ],