diff options
| author | Garrett D'Amore <garrett@damore.org> | 2018-04-10 14:49:24 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2018-04-10 15:40:06 -0700 |
| commit | de29422db2c023301336e49f1e54610c743328b1 (patch) | |
| tree | 573f7f31dc6c254eabbb1b2adfc77014c731ba38 /src | |
| parent | 0691cafdd49cab6ba81944ccc75497376d29cb93 (diff) | |
| download | nng-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')
| -rw-r--r-- | src/platform/posix/posix_pipedesc.c | 7 |
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); } } |
