diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-01-19 13:39:47 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-01-19 13:39:47 +0100 |
commit | 69cfe89ca44466f295ce88faf92aabf187c9cf95 (patch) | |
tree | 0c41024ced258691ef02e67ccd1d5926b16bcc85 | |
parent | 7635644189f73847d9a56911c8883cb7728a34cc (diff) |
move listener unblocking to a separate stack context via uloop timer
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
-rw-r--r-- | listen.c | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -52,7 +52,7 @@ static void uh_block_listener(struct listener *l) l->blocked = true; } -void uh_unblock_listeners(void) +static void uh_poll_listeners(struct uloop_timeout *timeout) { struct listener *l; @@ -74,6 +74,15 @@ void uh_unblock_listeners(void) } } +void uh_unblock_listeners(void) +{ + static struct uloop_timeout poll_timer = { + .cb = uh_poll_listeners + }; + + uloop_timeout_set(&poll_timer, 1); +} + static void listener_cb(struct uloop_fd *fd, unsigned int events) { struct listener *l = container_of(fd, struct listener, fd); |