Fix infinite loop in the legacy poller

This commit is contained in:
Přemysl Eric Janouch 2014-08-18 23:07:55 +02:00
parent 9fab2fd2bd
commit 2c150b5399

View File

@ -1331,12 +1331,10 @@ poller_run (struct poller *self)
for (int i = 0; i < (int) self->len; ) for (int i = 0; i < (int) self->len; )
{ {
struct pollfd pfd = self->fds[i]; struct pollfd pfd = self->fds[i];
if (!pfd.revents)
continue;
struct poller_info *info = self->fds_info + i; struct poller_info *info = self->fds_info + i;
self->dispatch_next = ++i; self->dispatch_next = ++i;
info->dispatcher (&pfd, info->user_data); if (pfd.revents)
info->dispatcher (&pfd, info->user_data);
i = self->dispatch_next; i = self->dispatch_next;
} }