about summary refs log tree commit homepage
path: root/lib/PublicInbox/LeiQuery.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-10-25 08:59:19 +0000
committerEric Wong <e@80x24.org>2021-10-25 19:32:00 +0000
commit2833f2adeb224a83d731deaa717e1969e5bf9e62 (patch)
treebf565dd24d59040a9064ce8b95736e4a94e1d660 /lib/PublicInbox/LeiQuery.pm
parent21c66c3ac2a355a600325a69a345a33ad5c7320f (diff)
downloadpublic-inbox-2833f2adeb224a83d731deaa717e1969e5bf9e62.tar.gz
No need to go through the lei/store process when we write
mail_sync.sqlite3.  This ought to reduce ENOBUFS errors (and the
sleep workaround) on RAM-starved systems.
Diffstat (limited to 'lib/PublicInbox/LeiQuery.pm')
-rw-r--r--lib/PublicInbox/LeiQuery.pm9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/PublicInbox/LeiQuery.pm b/lib/PublicInbox/LeiQuery.pm
index effc572f..3d0e5b14 100644
--- a/lib/PublicInbox/LeiQuery.pm
+++ b/lib/PublicInbox/LeiQuery.pm
@@ -32,10 +32,13 @@ sub _start_query { # used by "lei q" and "lei up"
         if ($l2m && grep { $opt->{$_} //= \1 } (qw(mail-sync import-remote
                                                         import-before))) {
                 $self->_lei_store(1)->write_prepare($self);
+                if ($opt->{'mail-sync'}) {
+                        my $lms = $l2m->{-lms_rw} = $self->lms(1);
+                        $lms->lms_write_prepare->lms_pause; # just create
+                }
         }
-        $l2m and $l2m->{-wq_nr_workers} = $mj // do {
-                $mj = int($nproc * 0.75 + 0.5); # keep some CPU for git
-        };
+        $l2m and $l2m->{-wq_nr_workers} = $mj //
+                int($nproc * 0.75 + 0.5); # keep some CPU for git
 
         # descending docid order is cheapest, MUA controls sorting order
         $self->{mset_opt}->{relevance} //= -2 if $l2m || $opt->{threads};