]> Sergey Matveev's repositories - public-inbox.git/commitdiff
evcleanup: ensure deferred close from timers are handled ASAP
authorEric Wong <e@80x24.org>
Mon, 26 Dec 2016 03:05:15 +0000 (03:05 +0000)
committerEric Wong <e@80x24.org>
Mon, 26 Dec 2016 03:05:36 +0000 (03:05 +0000)
Danga::Socket defers close() syscalls until the end of the event
loop to avoid FD recycling.  Unfortunately, this is dependent on
IO events firing and waking the process up from
poll/kevent/epoll_wait.

Without any I/O activity, a socket could remain in the
@Danga::Socket::ToClose array indefinitely.  Thus, we will
trigger a fake IO event after running all timers to trigger
the deferred close in Danga::Socket::PostEventLoop.


No differences found