From bb484f2ca29b10d2ae001bda77406c8b433c9e80 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 12 Jul 2019 00:03:41 +0000 Subject: nntp: clear local timer on idle client expiry We need to ensure further timers can be registered if there's currently no idle clients. --- lib/PublicInbox/NNTP.pm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index f4208f87..0d2bc4f3 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -57,22 +57,20 @@ sub expire_old () { my $now = now(); my $exp = $EXPTIME; my $old = $now - $exp; - my $nr = 0; my %new; while (my ($fd, $v) = each %$EXPMAP) { my ($idle_time, $nntp) = @$v; if ($idle_time < $old) { if (!$nntp->shutdn) { - ++$nr; $new{$fd} = $v; } } else { - ++$nr; $new{$fd} = $v; } } $EXPMAP = \%new; - $expt = PublicInbox::EvCleanup::later(*expire_old) if $nr; + $expt = scalar(keys %new) ? PublicInbox::EvCleanup::later(*expire_old) + : undef; } sub greet ($) { $_[0]->write($_[0]->{nntpd}->{greet}) }; -- cgit v1.2.3-24-ge0c7