aboutsummaryrefslogtreecommitdiff
path: root/src/platform
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform')
-rw-r--r--src/platform/posix/posix_ipcconn.c8
-rw-r--r--src/platform/posix/posix_tcpconn.c8
2 files changed, 16 insertions, 0 deletions
diff --git a/src/platform/posix/posix_ipcconn.c b/src/platform/posix/posix_ipcconn.c
index 2b46fb12..539a00ba 100644
--- a/src/platform/posix/posix_ipcconn.c
+++ b/src/platform/posix/posix_ipcconn.c
@@ -47,6 +47,10 @@ ipc_conn_dowrite(nni_ipc_conn *c)
int fd;
if (c->closed || ((fd = nni_posix_pfd_fd(c->pfd)) < 0)) {
+ while ((aio = nni_list_first(&c->writeq)) != NULL) {
+ nni_aio_list_remove(aio);
+ nni_aio_finish_error(aio, NNG_ECLOSED);
+ }
return;
}
@@ -129,6 +133,10 @@ ipc_conn_doread(nni_ipc_conn *c)
int fd;
if (c->closed || ((fd = nni_posix_pfd_fd(c->pfd)) < 0)) {
+ while ((aio = nni_list_first(&c->readq)) != NULL) {
+ nni_aio_list_remove(aio);
+ nni_aio_finish_error(aio, NNG_ECLOSED);
+ }
return;
}
diff --git a/src/platform/posix/posix_tcpconn.c b/src/platform/posix/posix_tcpconn.c
index c0352c55..cf85e8e8 100644
--- a/src/platform/posix/posix_tcpconn.c
+++ b/src/platform/posix/posix_tcpconn.c
@@ -43,6 +43,10 @@ tcp_conn_dowrite(nni_tcp_conn *c)
int fd;
if (c->closed || ((fd = nni_posix_pfd_fd(c->pfd)) < 0)) {
+ while ((aio = nni_list_first(&c->writeq)) != NULL) {
+ nni_aio_list_remove(aio);
+ nni_aio_finish_error(aio, NNG_ECLOSED);
+ }
return;
}
@@ -125,6 +129,10 @@ tcp_conn_doread(nni_tcp_conn *c)
int fd;
if (c->closed || ((fd = nni_posix_pfd_fd(c->pfd)) < 0)) {
+ while ((aio = nni_list_first(&c->readq)) != NULL) {
+ nni_aio_list_remove(aio);
+ nni_aio_finish_error(aio, NNG_ECLOSED);
+ }
return;
}