Fix infinite loop in the legacy poller
This commit is contained in:
parent
9fab2fd2bd
commit
2c150b5399
6
common.c
6
common.c
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user