aboutsummaryrefslogtreecommitdiff
path: root/src/protocol/bus
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocol/bus')
-rw-r--r--src/protocol/bus/bus.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/protocol/bus/bus.c b/src/protocol/bus/bus.c
index b88337d1..e8428e42 100644
--- a/src/protocol/bus/bus.c
+++ b/src/protocol/bus/bus.c
@@ -165,7 +165,7 @@ nni_bus_pipe_fini(void *arg)
static int
-nni_bus_pipe_add(void *arg)
+nni_bus_pipe_start(void *arg)
{
nni_bus_pipe *ppipe = arg;
nni_bus_sock *psock = ppipe->psock;
@@ -182,15 +182,18 @@ nni_bus_pipe_add(void *arg)
static void
-nni_bus_pipe_rem(void *arg)
+nni_bus_pipe_stop(void *arg)
{
nni_bus_pipe *ppipe = arg;
nni_bus_sock *psock = ppipe->psock;
+ nni_sock *nsock = psock->nsock;
- nni_list_remove(&psock->pipes, ppipe);
+ if (nni_list_active(&psock->pipes, ppipe)) {
+ nni_list_remove(&psock->pipes, ppipe);
- nni_msgq_close(ppipe->sendq);
- nni_msgq_aio_cancel(nni_sock_recvq(psock->nsock), &ppipe->aio_putq);
+ nni_msgq_close(ppipe->sendq);
+ nni_msgq_aio_cancel(nni_sock_recvq(nsock), &ppipe->aio_putq);
+ }
}
@@ -390,8 +393,8 @@ nni_bus_sock_getopt(void *arg, int opt, void *buf, size_t *szp)
static nni_proto_pipe_ops nni_bus_pipe_ops = {
.pipe_init = nni_bus_pipe_init,
.pipe_fini = nni_bus_pipe_fini,
- .pipe_add = nni_bus_pipe_add,
- .pipe_rem = nni_bus_pipe_rem,
+ .pipe_start = nni_bus_pipe_start,
+ .pipe_stop = nni_bus_pipe_stop,
};
static nni_proto_sock_ops nni_bus_sock_ops = {