aboutsummaryrefslogtreecommitdiff
path: root/src/core/pipe.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-07-13 22:00:19 -0700
committerGarrett D'Amore <garrett@damore.org>2017-07-13 22:01:38 -0700
commitd3de15eb854b88844071685f13cb70064d1fda49 (patch)
tree7270bc3bb6cf815c84adc25258608f90cdd6108c /src/core/pipe.c
parentbab7b4ac8f725115287e60784cfbc303a5222c66 (diff)
downloadnng-d3de15eb854b88844071685f13cb70064d1fda49.tar.gz
nng-d3de15eb854b88844071685f13cb70064d1fda49.tar.bz2
nng-d3de15eb854b88844071685f13cb70064d1fda49.zip
Use the same flow regardless of whether pipe start is used or not.
This means that pipe_start always succeeds, and we can guarantee that the pipe_start_cb is always executed, and in another context. This may help when we need to change the way that sockets and endpoints are associated.
Diffstat (limited to 'src/core/pipe.c')
-rw-r--r--src/core/pipe.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/core/pipe.c b/src/core/pipe.c
index d010935d..a912e736 100644
--- a/src/core/pipe.c
+++ b/src/core/pipe.c
@@ -235,20 +235,14 @@ nni_pipe_getopt(nni_pipe *p, int opt, void *val, size_t *szp)
return (p->p_tran_ops.p_getopt(p->p_tran_data, opt, val, szp));
}
-int
+void
nni_pipe_start(nni_pipe *p)
{
- int rv;
-
if (p->p_tran_ops.p_start == NULL) {
- rv = nni_sock_pipe_ready(p->p_sock, p);
- return (rv);
+ nni_aio_finish(&p->p_start_aio, 0, 0);
+ } else {
+ p->p_tran_ops.p_start(p->p_tran_data, &p->p_start_aio);
}
-
- p->p_tran_ops.p_start(p->p_tran_data, &p->p_start_aio);
- // XXX: Publish event
-
- return (0);
}
void *