aboutsummaryrefslogtreecommitdiff
path: root/src/core/endpt.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-07-21 02:46:01 -0700
committerGarrett D'Amore <garrett@damore.org>2017-07-21 02:46:01 -0700
commit537e2eda8d9fda2001295c835a4720def6a237f1 (patch)
tree615d05096e0fe4c8bfbccf31f37c7256381ccd8e /src/core/endpt.c
parent07078e1cf761cb6e56e46bde3ade6f792368d7dd (diff)
downloadnng-537e2eda8d9fda2001295c835a4720def6a237f1.tar.gz
nng-537e2eda8d9fda2001295c835a4720def6a237f1.tar.bz2
nng-537e2eda8d9fda2001295c835a4720def6a237f1.zip
Simpler taskq API.
The queue is bound at initialization time of the task, and we call entries just tasks, so we don't have to pass around a taskq pointer across all the calls. Further, nni_task_dispatch is now guaranteed to succeed.
Diffstat (limited to 'src/core/endpt.c')
-rw-r--r--src/core/endpt.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/core/endpt.c b/src/core/endpt.c
index 6b474698..c0f9d399 100644
--- a/src/core/endpt.c
+++ b/src/core/endpt.c
@@ -22,6 +22,7 @@ static void nni_ep_connect_start(nni_ep *);
static void nni_ep_connect_done(void *);
static void nni_ep_backoff_start(nni_ep *);
static void nni_ep_backoff_done(void *);
+static void nni_ep_reap(nni_ep *);
static nni_idhash *nni_eps;
@@ -107,6 +108,7 @@ nni_ep_create(nni_ep **epp, nni_sock *sock, const char *addr, int mode)
ep->ep_refcnt = 0;
NNI_LIST_NODE_INIT(&ep->ep_node);
+ nni_task_init(NULL, &ep->ep_reap_task, (nni_cb) nni_ep_reap, ep);
nni_pipe_ep_list_init(&ep->ep_pipes);
@@ -226,8 +228,7 @@ nni_ep_stop(nni_ep *ep)
nni_pipe_stop(pipe);
}
- nni_taskq_ent_init(&ep->ep_reap_tqe, (nni_cb) nni_ep_reap, ep);
- nni_taskq_dispatch(NULL, &ep->ep_reap_tqe);
+ nni_task_dispatch(&ep->ep_reap_task);
nni_mtx_unlock(&ep->ep_mtx);
}