aboutsummaryrefslogtreecommitdiff
path: root/src/transport/tcp
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-03-29 17:05:08 -0700
committerGarrett D'Amore <garrett@damore.org>2017-03-29 17:05:08 -0700
commit86eaf052cc535658783dd5c3d5925f58fd70f983 (patch)
treee7675f617b749a5a4c5aeb8ca00e0b9be6f84e2a /src/transport/tcp
parent84990c6ecb35ef322b74b8cc9e74ad5964b66ee5 (diff)
downloadnng-86eaf052cc535658783dd5c3d5925f58fd70f983.tar.gz
nng-86eaf052cc535658783dd5c3d5925f58fd70f983.tar.bz2
nng-86eaf052cc535658783dd5c3d5925f58fd70f983.zip
IPC send/recv works asynchronously for POSIX.
As with TCP, we're still using threads under the hood. But this completes the send/recv logic conversion for POSIX to our AIO framework, and hence represents a substantial milestone towards full asyncronous operation. We still need to do accept/connect operations asynchronously, then making. Windows overlapped IO work properly. After that, poll/epoll/kqueue, etc.
Diffstat (limited to 'src/transport/tcp')
-rw-r--r--src/transport/tcp/tcp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/transport/tcp/tcp.c b/src/transport/tcp/tcp.c
index 1cf64768..7e712cc8 100644
--- a/src/transport/tcp/tcp.c
+++ b/src/transport/tcp/tcp.c
@@ -107,6 +107,9 @@ nni_tcp_pipe_fini(void *arg)
{
nni_tcp_pipe *pipe = arg;
+ if (pipe->rxmsg) {
+ nni_msg_free(pipe->rxmsg);
+ }
nni_aio_fini(&pipe->rxaio);
nni_aio_fini(&pipe->txaio);
nni_plat_tcp_fini(pipe->tsp);