diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-04-10 12:19:13 +1000 |
---|---|---|
committer | Geoff Levand <geoff@infradead.org> | 2013-04-10 10:49:20 -0700 |
commit | 37428306a270088bfcb1f94362a0fe5b7a5a888e (patch) | |
tree | 5d1aeca3eca44b68a8f8939e3bea44709a953aa9 /lib/waiter/waiter.h | |
parent | ee86a0bd989511319adf3467b41b5b2e1f486aa6 (diff) | |
download | talos-petitboot-37428306a270088bfcb1f94362a0fe5b7a5a888e.tar.gz talos-petitboot-37428306a270088bfcb1f94362a0fe5b7a5a888e.zip |
waiter: Don't rely on global variables to keep waiter state
Rather than defining the set of waiters (and pollfds) in waiter.c, add a
struct waitset to contain these. A waitset is created with
waitset_create, which is passed to the waiter_* functions.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Geoff Levand <geoff@infradead.org>
Diffstat (limited to 'lib/waiter/waiter.h')
-rw-r--r-- | lib/waiter/waiter.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/waiter/waiter.h b/lib/waiter/waiter.h index ff8a5ff..ed7f6bb 100644 --- a/lib/waiter/waiter.h +++ b/lib/waiter/waiter.h @@ -4,6 +4,7 @@ #include <poll.h> struct waiter; +struct waitset; enum events { WAIT_IN = POLLIN, @@ -12,12 +13,15 @@ enum events { typedef int (*waiter_cb)(void *); -struct waiter *waiter_register(int fd, int events, +struct waitset *waitset_create(void *ctx); +void waitset_destroy(struct waitset *waitset); + +struct waiter *waiter_register(struct waitset *waitset, int fd, int events, waiter_cb callback, void *arg); void waiter_remove(struct waiter *waiter); -int waiter_poll(void); +int waiter_poll(struct waitset *waitset); #endif /* _WAITER_H */ |