]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/NNTP.pm
nntp: respect 3 minute idle time for shutdown
[public-inbox.git] / lib / PublicInbox / NNTP.pm
index b07e1845c2321962bb7962a926cc04032ce10aff..56d08385da0f6a4b924e07ffb01662ad288f0715 100644 (file)
@@ -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;