Don't skip events when a devpoll-like engine deletes a socket.
authorMichael Poole <mdpoole@troilus.org>
Tue, 6 Aug 2013 03:04:54 +0000 (23:04 -0400)
committerMichael Poole <mdpoole@troilus.org>
Tue, 6 Aug 2013 03:04:54 +0000 (23:04 -0400)
commit41c732d83f3097645dc43ece14f38547045d1d0d
tree5fd99982b592306789adff3f886230641c45c9fa
parent389b4c485cac5cf8deff89e381020f2a38f1ad34
Don't skip events when a devpoll-like engine deletes a socket.

engine_delete() might replace polls[polls_i] with polls[--polls_used],
but neither it nor engine_loop() decremented polls_i so that the moved
event would be processed.  We can eliminate polls_i while fixing it.
ircd/engine_devpoll.c
ircd/engine_epoll.c
ircd/engine_kqueue.c