aboutsummaryrefslogtreecommitdiff
path: root/src/platform
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-04-10 14:49:24 -0700
committerGarrett D'Amore <garrett@damore.org>2018-04-10 15:40:06 -0700
commitde29422db2c023301336e49f1e54610c743328b1 (patch)
tree573f7f31dc6c254eabbb1b2adfc77014c731ba38 /src/platform
parent0691cafdd49cab6ba81944ccc75497376d29cb93 (diff)
downloadnng-de29422db2c023301336e49f1e54610c743328b1.tar.gz
nng-de29422db2c023301336e49f1e54610c743328b1.tar.bz2
nng-de29422db2c023301336e49f1e54610c743328b1.zip
Eliminate possible data race on file descriptor.
Turns out that shutdown is sufficient for most needs.
Diffstat (limited to 'src/platform')
-rw-r--r--src/platform/posix/posix_pipedesc.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/platform/posix/posix_pipedesc.c b/src/platform/posix/posix_pipedesc.c
index 05f3f13f..d3c46f2d 100644
--- a/src/platform/posix/posix_pipedesc.c
+++ b/src/platform/posix/posix_pipedesc.c
@@ -47,7 +47,6 @@ static void
nni_posix_pipedesc_doclose(nni_posix_pipedesc *pd)
{
nni_aio *aio;
- int fd;
pd->closed = true;
while ((aio = nni_list_first(&pd->readq)) != NULL) {
@@ -56,11 +55,9 @@ nni_posix_pipedesc_doclose(nni_posix_pipedesc *pd)
while ((aio = nni_list_first(&pd->writeq)) != NULL) {
nni_posix_pipedesc_finish(aio, NNG_ECLOSED);
}
- if ((fd = pd->node.fd) != -1) {
+ if (pd->node.fd != -1) {
// Let any peer know we are closing.
- pd->node.fd = -1;
- (void) shutdown(fd, SHUT_RDWR);
- (void) close(fd);
+ (void) shutdown(pd->node.fd, SHUT_RDWR);
}
}