sub lei_forget_mail_sync {
my ($lei, @folders) = @_;
- my $sto = $lei->_lei_store or return;
- my $lms = $sto->search->lms or return;
+ my $lms = $lei->lms or return;
+ my $sto = $lei->_lei_store or return; # may disappear due to race
+ $sto->write_prepare($lei);
my $err = $lms->arg2folder($lei, \@folders);
$lei->qerr(@{$err->{qerr}}) if $err->{qerr};
return $lei->fail($err->{fail}) if $err->{fail};
- delete $lms->{dbh};
- $lms->lms_begin;
- $lms->forget_folder($_) for @folders;
- $lms->lms_commit;
+ $sto->ipc_do('lms_forget_folders', @folders);
+ $lei->sto_done_request;
}
*_complete_forget_mail_sync = \&PublicInbox::LeiExportKw::_complete_export_kw;