From a65ebdc3a1f064bab0cddf64b34caad49f1c4c9c Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 12 Jan 2020 21:17:51 +0000 Subject: ds|http|nntp: simplify {wbuf} population We can rely on autovification to turn `undef' value of {wbuf} into an arrayref. Furthermore, "push" returns the (new) size of the array since at least Perl 5.0 (I didn't look further back), so we can use that return value instead of calling "scalar" again. --- lib/PublicInbox/NNTP.pm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'lib/PublicInbox/NNTP.pm') diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index 9f0dfaaa..35729f00 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -616,20 +616,19 @@ sub long_step { # each other's data $self->zflush; - # no recursion, schedule another call ASAP - # but only after all pending writes are done - my $wbuf = $self->{wbuf} ||= []; - push @$wbuf, \&long_step; + # no recursion, schedule another call ASAP, but only after + # all pending writes are done. autovivify wbuf: + my $new_size = push(@{$self->{wbuf}}, \&long_step); # wbuf may be populated by $cb, no need to rearm if so: - $self->requeue if scalar(@$wbuf) == 1; + $self->requeue if $new_size == 1; } else { # all done! delete $self->{long_cb}; res($self, '.'); my $elapsed = now() - $t0; my $fd = fileno($self->{sock}); out($self, " deferred[$fd] done - %0.6f", $elapsed); - my $wbuf = $self->{wbuf}; + my $wbuf = $self->{wbuf}; # do NOT autovivify $self->requeue unless $wbuf && @$wbuf; } } -- cgit v1.2.3-24-ge0c7