diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-07-13 22:00:19 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-07-13 22:01:38 -0700 |
| commit | d3de15eb854b88844071685f13cb70064d1fda49 (patch) | |
| tree | 7270bc3bb6cf815c84adc25258608f90cdd6108c /src/core/pipe.c | |
| parent | bab7b4ac8f725115287e60784cfbc303a5222c66 (diff) | |
| download | nng-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.c | 14 |
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 * |
