about summary refs log tree commit homepage
path: root/lib/PublicInbox/LeiRediff.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-05-05 17:49:44 +0000
committerEric Wong <e@80x24.org>2021-05-05 19:50:04 +0000
commit8e29aa50db0147f63ba4a164dce53d2d735d0a9f (patch)
tree9f4e878bb9920fcf35fdecb167a590184053205b /lib/PublicInbox/LeiRediff.pm
parent274d3476320aebc93ead7c5da4f716a12d43167f (diff)
downloadpublic-inbox-8e29aa50db0147f63ba4a164dce53d2d735d0a9f.tar.gz
We can use a temporary lei/store to avoid cluttering up
future search results.  This is especially useful since
we expect "lei rediff" to be useful for non-email diffs
and individual attachments, too.
Diffstat (limited to 'lib/PublicInbox/LeiRediff.pm')
-rw-r--r--lib/PublicInbox/LeiRediff.pm9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/PublicInbox/LeiRediff.pm b/lib/PublicInbox/LeiRediff.pm
index d73e3e28..deb6c3ae 100644
--- a/lib/PublicInbox/LeiRediff.pm
+++ b/lib/PublicInbox/LeiRediff.pm
@@ -70,7 +70,6 @@ EOM
         my $tb = $ta;
         $tb =~ tr!A!B!;
         my $lei = $self->{lei};
-        my $wait = delete($self->{-do_done}) ? $lei->{sto}->ipc_do('done') : 0;
         while (my ($oid_a, $oid_b, $pa, $pb, $ma, $mb) = splice(@$ctxq, 0, 6)) {
                 my $xa = $blob->{$oid_a} //= solve_1($self, $oid_a,
                                                         { path_b => $pa });
@@ -193,8 +192,8 @@ sub extract_oids { # Eml each_part callback
 
 sub input_eml_cb { # callback for all emails
         my ($self, $eml) = @_;
-        $self->{lei}->{sto}->ipc_do('add_eml', $eml);
-        $self->{-do_done} = 1;
+        $self->{tmp_sto}->add_eml($eml);
+        $self->{tmp_sto}->done;
         $eml->each_part(\&extract_oids, $self, 1);
 }
 
@@ -239,7 +238,9 @@ sub ipc_atfork_child {
         binmode $lei->{1}, ':utf8';
         $self->{blobs} = {}; # oidhex => filename
         $self->{rdtmp} = File::Temp->newdir('lei-rediff-XXXX', TMPDIR => 1);
-        $self->{rmt} = [ map {
+        $self->{tmp_sto} = PublicInbox::LeiStore->new(
+                        "$self->{rdtmp}/tmp.store", { creat => 1 });
+        $self->{rmt} = [ $self->{tmp_sto}->search, map {
                         PublicInbox::LeiRemote->new($lei, $_)
                 } $self->{lxs}->remotes ];
         $self->{gits} = [ map {