Fix removal from dispatch in timer callbacks

This commit is contained in:
Přemysl Eric Janouch 2014-09-19 01:06:42 +02:00
parent 37e1895fd0
commit 21e75ebd55

View File

@ -1187,11 +1187,11 @@ poller_run (struct poller *self)
if (n_fds == -1)
exit_fatal ("%s: %s", "epoll", strerror (errno));
poller_timers_dispatch (&self->timers);
self->dispatch_next = 0;
self->dispatch_total = n_fds;
poller_timers_dispatch (&self->timers);
while (self->dispatch_next < self->dispatch_total)
{
struct epoll_event *revents = self->revents + self->dispatch_next;