From 0a80d0c2e723213e3981d2d6ef0de7cee60ee50c Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 4 Dec 2020 22:03:45 +0000 Subject: nntp: xref_by_tc: simplify slightly We can invalidate ibx->{newsgroup} at config load-time to avoid having to check ibx->{newsgroup} validity in To/Cc: matching. This saves us some hash lookups in all cases. --- lib/PublicInbox/NNTPD.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'lib/PublicInbox/NNTPD.pm') diff --git a/lib/PublicInbox/NNTPD.pm b/lib/PublicInbox/NNTPD.pm index 967850e9..03c56db3 100644 --- a/lib/PublicInbox/NNTPD.pm +++ b/lib/PublicInbox/NNTPD.pm @@ -38,13 +38,18 @@ sub refresh_groups { my $groups = $pi_config->{-by_newsgroup}; # filled during each_inbox $pi_config->each_inbox(sub { my ($ibx) = @_; - my $ngname = $ibx->{newsgroup} // return; - if ($ibx->nntp_usable) { # only valid if msgmap and over works + my $ngname = $ibx->{newsgroup}; + if (defined($ngname) && $ibx->nntp_usable) { + # only valid if msgmap and over works # preload to avoid fragmentation: $ibx->description; $ibx->base_url; } else { delete $groups->{$ngname}; + delete $ibx->{newsgroup}; + # Note: don't be tempted to delete more for memory + # savings just yet: NNTP, IMAP, and WWW may all + # run in the same process someday. } }); $self->{groupnames} = [ sort(keys %$groups) ]; -- cgit v1.2.3-24-ge0c7