about summary refs log tree commit homepage
path: root/lib/PublicInbox/LeiToMail.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/LeiToMail.pm')
-rw-r--r--lib/PublicInbox/LeiToMail.pm13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/PublicInbox/LeiToMail.pm b/lib/PublicInbox/LeiToMail.pm
index f9250860..5a6f18fb 100644
--- a/lib/PublicInbox/LeiToMail.pm
+++ b/lib/PublicInbox/LeiToMail.pm
@@ -365,6 +365,7 @@ sub new {
         } else {
                 die "bad mail --format=$fmt\n";
         }
+        $self->{dst} = $dst;
         $lei->{dedupe} = PublicInbox::LeiDedupe->new($lei);
         $self;
 }
@@ -474,6 +475,18 @@ sub ipc_atfork_child {
         $self->SUPER::ipc_atfork_child;
 }
 
+sub lock_free {
+        $_[0]->{base_type} =~ /\A(?:maildir|mh|imap|jmap)\z/ ? 1 : 0;
+}
+
+sub poke_dst {
+        my ($self) = @_;
+        if ($self->{base_type} eq 'maildir') {
+                my $t = time + 1;
+                utime($t, $t, "$self->{dst}/cur");
+        }
+}
+
 sub write_mail { # via ->wq_do
         my ($self, $git_dir, $smsg) = @_;
         my $not_done = delete $self->{0} // die 'BUG: $not_done missing';