lib/PublicInbox/EvCleanup.pm | 14 ++++++++++++-- diff --git a/lib/PublicInbox/EvCleanup.pm b/lib/PublicInbox/EvCleanup.pm index 2b77c617b24f6485c26890b0e6e471209bd26b8b..b9fe843b18a7bcb9ae97777d99bdc16984426973 100644 --- a/lib/PublicInbox/EvCleanup.pm +++ b/lib/PublicInbox/EvCleanup.pm @@ -30,9 +30,19 @@ $q->[1] = undef; $_->() foreach @$run; } +# ensure Danga::Socket::ToClose fires after timers fire +sub _asap_close () { $asapq->[1] ||= _asap_timer() } + sub _run_asap () { _run_all($asapq) } -sub _run_next () { _run_all($nextq) } -sub _run_later () { _run_all($laterq) } +sub _run_next () { + _run_all($nextq); + _asap_close(); +} + +sub _run_later () { + _run_all($laterq); + _asap_close(); +} # Called by Danga::Socket sub event_write {