summaryrefslogtreecommitdiff
path: root/common.c
diff options
context:
space:
mode:
authorPřemysl Janouch <p.janouch@gmail.com>2014-08-18 23:07:55 +0200
committerPřemysl Janouch <p.janouch@gmail.com>2014-08-18 23:07:55 +0200
commit2c150b53992212d1a90c623d8b7faa5907e31ea8 (patch)
tree3bde550fa30da96d2432ee89ae01bfeb04932e1c /common.c
parent9fab2fd2bdf8c17b8cda9479cabd48a2618adeb7 (diff)
downloadxK-2c150b53992212d1a90c623d8b7faa5907e31ea8.tar.gz
xK-2c150b53992212d1a90c623d8b7faa5907e31ea8.tar.xz
xK-2c150b53992212d1a90c623d8b7faa5907e31ea8.zip
Fix infinite loop in the legacy poller
Diffstat (limited to 'common.c')
-rw-r--r--common.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/common.c b/common.c
index 26be47f..9d26799 100644
--- a/common.c
+++ b/common.c
@@ -1331,12 +1331,10 @@ poller_run (struct poller *self)
for (int i = 0; i < (int) self->len; )
{
struct pollfd pfd = self->fds[i];
- if (!pfd.revents)
- continue;
-
struct poller_info *info = self->fds_info + i;
self->dispatch_next = ++i;
- info->dispatcher (&pfd, info->user_data);
+ if (pfd.revents)
+ info->dispatcher (&pfd, info->user_data);
i = self->dispatch_next;
}