uloop: fix corner cases with recursive uloop_run calls
authorFelix Fietkau <nbd@openwrt.org>
Tue, 18 Jun 2013 10:01:08 +0000 (12:01 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 18 Jun 2013 10:05:09 +0000 (12:05 +0200)
commitb9ebdbcc648274cc630b6349374f9fb21e53f396
treecf92d4150ced9240a51bec85e89ef48fbf5497a6
parent35cee2c2067246b5e3dede9caac5d8b7a60ccba1
uloop: fix corner cases with recursive uloop_run calls

With multiple recursive calls to uloop_run, the callback for the same fd
can be run multiple times from different levels in the stack.
Prevent this by tracking the stack of uloop_fd callbacks and buffering new
incoming events for fds already on the stack.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
uloop.c
uloop.h