about summary refs log tree commit homepage
path: root/lib/PublicInbox/LEI.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-02-28 18:25:28 +0600
committerEric Wong <e@80x24.org>2021-03-01 05:52:05 +0000
commitac6c31a84fc9ef363bca6838c40a2bf30f49e43e (patch)
treef9b0c8eeb497f9a3261e9cf19b1de8afe4105f1d /lib/PublicInbox/LEI.pm
parent089c81f12fb8f7225103d661f2ec9073b0fea8f9 (diff)
downloadpublic-inbox-ac6c31a84fc9ef363bca6838c40a2bf30f49e43e.tar.gz
We must issue LeiStore->done if a client disconnects
while we're streaming from a remote external.  This
can happen via SIGPIPE, or if a client process is
interrupted by any other means.
Diffstat (limited to 'lib/PublicInbox/LEI.pm')
-rw-r--r--lib/PublicInbox/LEI.pm3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm
index f5e42869..834e399f 100644
--- a/lib/PublicInbox/LEI.pm
+++ b/lib/PublicInbox/LEI.pm
@@ -970,6 +970,9 @@ sub dclose {
                 }
         }
         close(delete $self->{1}) if $self->{1}; # may reap_compress
+        if (my $sto = delete $self->{sto}) {
+                $sto->ipc_do('done');
+        }
         $self->close if $self->{sock}; # PublicInbox::DS::close
 }