about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-06-05 21:06:06 +0000
committerEric Wong <e@80x24.org>2021-06-06 17:51:24 +0000
commit5f73b20f0579eb3d070b20cb180208ffe2a40787 (patch)
tree6c8d3019591f376cb30a3024629d53853b54d986
parentae51e1c762e48acdd8a09614ece533ddc376c865 (diff)
downloadpublic-inbox-5f73b20f0579eb3d070b20cb180208ffe2a40787.tar.gz
This is dangerous and causes race conditions on commands
which utilize multiple workqueues.
-rw-r--r--lib/PublicInbox/LEI.pm3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm
index 2dd21fc6..8adf70fa 100644
--- a/lib/PublicInbox/LEI.pm
+++ b/lib/PublicInbox/LEI.pm
@@ -480,6 +480,7 @@ sub sigint_reap {
 
 sub fail ($$;$) {
         my ($self, $buf, $exit_code) = @_;
+        $self->{failed}++;
         err($self, $buf) if defined $buf;
         # calls fail_handler:
         $self->{pkt_op_p}->pkt_do('!') if $self->{pkt_op_p};
@@ -1043,7 +1044,7 @@ sub accept_dispatch { # Listener {post_accept} callback
 sub dclose {
         my ($self) = @_;
         delete $self->{-progress};
-        _drop_wq($self);
+        _drop_wq($self) if $self->{failed};
         close(delete $self->{1}) if $self->{1}; # may reap_compress
         $self->close if $self->{-event_init_done}; # PublicInbox::DS::close
 }