about summary refs log tree commit homepage
path: root/lib/PublicInbox
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r--lib/PublicInbox/NNTP.pm15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index b07e1845..56d08385 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -998,10 +998,19 @@ sub watch_read {
         $rv;
 }
 
+sub not_idle_long ($$) {
+        my ($self, $now) = @_;
+        defined(my $fd = $self->{fd}) or return;
+        my $ary = $EXPMAP->{$fd} or return;
+        my $exp_at = $ary->[0] + $EXPTIME;
+        $exp_at > $now;
+}
+
 # for graceful shutdown in PublicInbox::Daemon:
-sub busy () {
-        my ($self) = @_;
-        ($self->{rbuf} ne '' || $self->{long_res} || $self->{write_buf_size});
+sub busy {
+        my ($self, $now) = @_;
+        ($self->{rbuf} ne '' || $self->{long_res} || $self->{write_buf_size} ||
+         not_idle_long($self, $now));
 }
 
 1;