aboutsummaryrefslogtreecommitdiff
path: root/src/platform/posix/posix_pipedesc.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-10-30 13:33:27 -0700
committerGarrett D'Amore <garrett@damore.org>2017-10-30 13:33:27 -0700
commit296d74dc8dbe880072c07f52365bbf43ed5684fa (patch)
tree543c189dff3113d63dfc7f3ab912b39f8e54152e /src/platform/posix/posix_pipedesc.c
parent3a6542ba7b620f83499eed6b584dec0d6b4cc787 (diff)
downloadnng-296d74dc8dbe880072c07f52365bbf43ed5684fa.tar.gz
nng-296d74dc8dbe880072c07f52365bbf43ed5684fa.tar.bz2
nng-296d74dc8dbe880072c07f52365bbf43ed5684fa.zip
Simplify pollq_add, use SO_NOSIGNAL option on macOS.
Diffstat (limited to 'src/platform/posix/posix_pipedesc.c')
-rw-r--r--src/platform/posix/posix_pipedesc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/platform/posix/posix_pipedesc.c b/src/platform/posix/posix_pipedesc.c
index a025f83c..e3ef5290 100644
--- a/src/platform/posix/posix_pipedesc.c
+++ b/src/platform/posix/posix_pipedesc.c
@@ -333,6 +333,12 @@ nni_posix_pipedesc_init(nni_posix_pipedesc **pdp, int fd)
(void) fcntl(fd, F_SETFL, O_NONBLOCK);
+#ifdef SO_NOSIGNAL
+ // Darwin lacks MSG_NOSIGNAL, but has a socket option.
+ int one = 1;
+ (void) setsockopt(fd, SOL_SOCKET, SO_NOSIGNAL, &one, sizeof(one));
+#endif
+
nni_mtx_init(&pd->mtx);
nni_aio_list_init(&pd->readq);
nni_aio_list_init(&pd->writeq);