summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@googlemail.com>2014-12-31 00:32:43 +0000
committerDominik Picheta <dominikpicheta@googlemail.com>2014-12-31 00:32:43 +0000
commit3bd542b7ca1b58599a0c807fe2ad6efdecb126e5 (patch)
tree6f3d5b152980165a9fc46005f662ddc8016b5a5e
parentda36a847a74e9edf36f734015d4a41cdb0193e38 (diff)
parent85c22f334832cc7cf5e2b01a23eb1c1b63189cfe (diff)
downloadNim-3bd542b7ca1b58599a0c807fe2ad6efdecb126e5.tar.gz
Merge pull request #1795 from akaufmann/devel
ignore signal SIGPIPE on Darwin
-rw-r--r--lib/posix/posix.nim4
-rw-r--r--lib/pure/rawsockets.nim4
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/posix/posix.nim b/lib/posix/posix.nim
index deb120372..0498a0e70 100644
--- a/lib/posix/posix.nim
+++ b/lib/posix/posix.nim
@@ -1570,9 +1570,9 @@ else:
 
 
 when defined(macosx):
+  # We can't use the NOSIGNAL flag in the ``send`` function, it has no effect
   var
-    MSG_HAVEMORE* {.importc, header: "<sys/socket.h>".}: cint
-    MSG_NOSIGNAL* = MSG_HAVEMORE
+    MSG_NOSIGNAL* = 0'i32
 else:
   var
     MSG_NOSIGNAL* {.importc, header: "<sys/socket.h>".}: cint
diff --git a/lib/pure/rawsockets.nim b/lib/pure/rawsockets.nim
index 62a011999..e23deea5b 100644
--- a/lib/pure/rawsockets.nim
+++ b/lib/pure/rawsockets.nim
@@ -428,6 +428,10 @@ proc selectWrite*(writefds: var seq[SocketHandle],
   
   pruneSocketSet(writefds, (wr))
 
+# We ignore signal SIGPIPE on Darwin
+when defined(macosx):
+  signal(SIGPIPE, SIG_IGN)
+
 when defined(Windows):
   var wsa: WSAData
   if wsaStartup(0x0101'i16, addr wsa) != 0: raiseOSError(osLastError())