diff options
author | Eric Wong <e@80x24.org> | 2022-07-23 04:41:50 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2022-07-23 14:22:30 +0000 |
commit | a5e39d0e4e2d9b7ad937e8dd9af726d96eec6126 (patch) | |
tree | 8393c45ca0e81e53f2d826dfea920ef24ac8532e /lib/PublicInbox/DS.pm | |
parent | 0f432191082f889c4296351e356c4abaf8cc7a28 (diff) | |
download | public-inbox-a5e39d0e4e2d9b7ad937e8dd9af726d96eec6126.tar.gz |
It's the same subroutine everywhere.
Diffstat (limited to 'lib/PublicInbox/DS.pm')
-rw-r--r-- | lib/PublicInbox/DS.pm | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/PublicInbox/DS.pm b/lib/PublicInbox/DS.pm index daef9d89..f0181b54 100644 --- a/lib/PublicInbox/DS.pm +++ b/lib/PublicInbox/DS.pm @@ -650,6 +650,20 @@ sub shutdn ($) { sub zflush {} # overridden by NNTPdeflate and IMAPdeflate +sub requeue_once { + my ($self) = @_; + # COMPRESS users all share the same DEFLATE context. + # Flush it here to ensure clients don't see + # each other's data + $self->zflush; + + # no recursion, schedule another call ASAP, + # but only after all pending writes are done. + # autovivify wbuf. wbuf may be populated by $cb, + # no need to rearm if so: (push returns new size of array) + requeue($self) if push(@{$self->{wbuf}}, $self->can('long_step')) == 1; +} + sub dwaitpid ($;$$) { my ($pid, $cb, $arg) = @_; if ($in_loop) { |