projects
/
project
/
uhttpd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
move listener unblocking to a separate stack context via uloop timer
[project/uhttpd.git]
/
listen.c
diff --git
a/listen.c
b/listen.c
index
d51e600
..
37fc4bb
100644
(file)
--- a/
listen.c
+++ b/
listen.c
@@
-52,7
+52,7
@@
static void uh_block_listener(struct listener *l)
l->blocked = true;
}
l->blocked = true;
}
-
void uh_unblock_listeners(void
)
+
static void uh_poll_listeners(struct uloop_timeout *timeout
)
{
struct listener *l;
{
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);
static void listener_cb(struct uloop_fd *fd, unsigned int events)
{
struct listener *l = container_of(fd, struct listener, fd);