diff options
| author | Garrett D'Amore <garrett@damore.org> | 2016-12-14 20:44:51 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2016-12-14 20:44:51 -0800 |
| commit | 9e3f9d4d7a953d41210b9d3757fb003573b90308 (patch) | |
| tree | c2e634c4eab4f836eedfa12e30e2eecd9c1a0009 /src/protocol/pair/pair.c | |
| parent | 3583d5e407476b8836228c0abc52c400d74aba61 (diff) | |
| download | nng-9e3f9d4d7a953d41210b9d3757fb003573b90308.tar.gz nng-9e3f9d4d7a953d41210b9d3757fb003573b90308.tar.bz2 nng-9e3f9d4d7a953d41210b9d3757fb003573b90308.zip | |
nni_socket_add_pipe and nni_socket_remove_pipe implementation.
Diffstat (limited to 'src/protocol/pair/pair.c')
| -rw-r--r-- | src/protocol/pair/pair.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/protocol/pair/pair.c b/src/protocol/pair/pair.c index 4b8a180b..6bb55a5d 100644 --- a/src/protocol/pair/pair.c +++ b/src/protocol/pair/pair.c @@ -183,18 +183,17 @@ pair_sender(void *arg) for (;;) { rv = nni_msgqueue_get_sig(uwq, &msg, -1, &pp->sigclose); if (rv != 0) { - (void) nni_pipe_close(pipe); - return; + break; } rv = nni_pipe_send(pipe, msg); if (rv != 0) { nni_msg_free(msg); - (void) nni_pipe_close(pipe); - /* signal the other side */ - nni_msgqueue_signal(urq, &pp->sigclose); - return; + break; } } + nni_msgqueue_signal(urq, &pp->sigclose); + nni_pipe_close(pipe); + nni_socket_remove_pipe(pair->sock, pipe); } static void @@ -218,18 +217,17 @@ pair_receiver(void *arg) for (;;) { rv = nni_pipe_recv(pipe, &msg); if (rv != 0) { - nni_msg_free(msg); - (void) nni_pipe_close(pipe); - /* signal the other side */ - nni_msgqueue_signal(uwq, &pp->sigclose); - return; + break; } rv = nni_msgqueue_put_sig(urq, msg, -1, &pp->sigclose); if (rv != 0) { - (void) nni_pipe_close(pipe); - return; + nni_msg_free(msg); + break; } } + nni_msgqueue_signal(uwq, &pp->sigclose); + nni_pipe_close(pipe); + nni_socket_remove_pipe(pair->sock, pipe); } static int |
