diff options
Diffstat (limited to 'lib/PublicInbox/LeiToMail.pm')
-rw-r--r-- | lib/PublicInbox/LeiToMail.pm | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/PublicInbox/LeiToMail.pm b/lib/PublicInbox/LeiToMail.pm index a1dce550..8e58ad11 100644 --- a/lib/PublicInbox/LeiToMail.pm +++ b/lib/PublicInbox/LeiToMail.pm @@ -247,11 +247,16 @@ sub _mbox_write_cb ($$) { $dedupe->prepare_dedupe; sub { # for git_to_mail my ($buf, $oid, $kw) = @_; + return unless $out; my $eml = PublicInbox::Eml->new($buf); if (!$dedupe->is_dup($eml, $oid)) { $buf = $eml2mbox->($eml, $kw); my $lk = $ovv->lock_for_scope; - $write->($out, $buf); + eval { $write->($out, $buf) }; + if ($@) { + die $@ if ref($@) ne 'PublicInbox::SIGPIPE'; + undef $out + } } } } |