diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-03-04 02:46:40 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-03-04 02:46:40 -0800 |
| commit | fb6550a242bb1742ec62202a99d0604ee9069795 (patch) | |
| tree | bd235a8ddf6766dc54c3e47b31dbc7a59802d5da /src/core/timer.c | |
| parent | c17a1dd3f5333da59355ecc3f8788a0396a8f72d (diff) | |
| download | nng-fb6550a242bb1742ec62202a99d0604ee9069795.tar.gz nng-fb6550a242bb1742ec62202a99d0604ee9069795.tar.bz2 nng-fb6550a242bb1742ec62202a99d0604ee9069795.zip | |
Pipeline protocol now entirely callback driven.
Diffstat (limited to 'src/core/timer.c')
| -rw-r--r-- | src/core/timer.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/core/timer.c b/src/core/timer.c index 59966822..778a82b7 100644 --- a/src/core/timer.c +++ b/src/core/timer.c @@ -12,10 +12,6 @@ #include <stdlib.h> #include <string.h> -extern void nni_timer_schedule(nni_timer_node *); -extern void nni_timer_cancel(nni_timer_node *); -extern int nni_timer_init(void); -extern void nni_timer_fini(void); static void nni_timer_loop(void *); struct nni_timer { @@ -76,6 +72,21 @@ nni_timer_sys_fini(void) void +nni_timer_init(nni_timer_node *node, nni_cb cb, void *arg) +{ + node->t_cb = cb; + node->t_arg = arg; +} + + +void +nni_timer_fini(nni_timer_node *node) +{ + NNI_ARG_UNUSED(node); +} + + +void nni_timer_cancel(nni_timer_node *node) { nni_timer *timer = &nni_global_timer; @@ -92,12 +103,14 @@ nni_timer_cancel(nni_timer_node *node) void -nni_timer_schedule(nni_timer_node *node) +nni_timer_schedule(nni_timer_node *node, nni_time when) { nni_timer *timer = &nni_global_timer; nni_timer_node *srch; int wake = 1; + node->t_expire = when; + nni_mtx_lock(&timer->t_list_mx); srch = nni_list_first(&timer->t_entries); |
