summary refs log tree commit diff stats
path: root/lib/pure/ioselects/ioselectors_select.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pure/ioselects/ioselectors_select.nim')
-rw-r--r--lib/pure/ioselects/ioselectors_select.nim28
1 files changed, 15 insertions, 13 deletions
diff --git a/lib/pure/ioselects/ioselectors_select.nim b/lib/pure/ioselects/ioselectors_select.nim
index 19d68f0fe..7a7d23982 100644
--- a/lib/pure/ioselects/ioselectors_select.nim
+++ b/lib/pure/ioselects/ioselectors_select.nim
@@ -122,17 +122,17 @@ when defined(windows):
                 sizeof(saddr).SockLen) < 0'i32:
       raiseIOSelectorsError(osLastError())
 
-    if winlean.listen(ssock, 1) == -1:
+    if winlean.listen(ssock, 1) != 0:
       raiseIOSelectorsError(osLastError())
 
     var namelen = sizeof(saddr).SockLen
     if getsockname(ssock, cast[ptr SockAddr](addr(saddr)),
-                   addr(namelen)) == -1'i32:
+                   addr(namelen)) != 0'i32:
       raiseIOSelectorsError(osLastError())
 
     saddr.sin_addr.s_addr = 0x0100007F
     if winlean.connect(wsock, cast[ptr SockAddr](addr(saddr)),
-                       sizeof(saddr).SockLen) == -1:
+                       sizeof(saddr).SockLen) != 0:
       raiseIOSelectorsError(osLastError())
     namelen = sizeof(saddr).SockLen
     rsock = winlean.accept(ssock, cast[ptr SockAddr](addr(saddr)),
@@ -140,14 +140,14 @@ when defined(windows):
     if rsock == SocketHandle(-1):
       raiseIOSelectorsError(osLastError())
 
-    if winlean.closesocket(ssock) == -1:
+    if winlean.closesocket(ssock) != 0:
       raiseIOSelectorsError(osLastError())
 
     var mode = clong(1)
-    if ioctlsocket(rsock, FIONBIO, addr(mode)) == -1:
+    if ioctlsocket(rsock, FIONBIO, addr(mode)) != 0:
       raiseIOSelectorsError(osLastError())
     mode = clong(1)
-    if ioctlsocket(wsock, FIONBIO, addr(mode)) == -1:
+    if ioctlsocket(wsock, FIONBIO, addr(mode)) != 0:
       raiseIOSelectorsError(osLastError())
 
     result = cast[SelectEvent](allocShared0(sizeof(SelectEventImpl)))
@@ -161,14 +161,16 @@ when defined(windows):
       raiseIOSelectorsError(osLastError())
 
   proc close*(ev: SelectEvent) =
-    discard winlean.closesocket(ev.rsock)
-    discard winlean.closesocket(ev.wsock)
+    let res1 = winlean.closesocket(ev.rsock)
+    let res2 = winlean.closesocket(ev.wsock)
     deallocShared(cast[pointer](ev))
+    if res1 != 0 or res2 != 0:
+      raiseIOSelectorsError(osLastError())
 
 else:
   proc newSelectEvent*(): SelectEvent =
     var fds: array[2, cint]
-    if posix.pipe(fds) == -1:
+    if posix.pipe(fds) != 0:
       raiseIOSelectorsError(osLastError())
     setNonBlocking(fds[0])
     setNonBlocking(fds[1])
@@ -182,11 +184,11 @@ else:
       raiseIOSelectorsError(osLastError())
 
   proc close*(ev: SelectEvent) =
-    if posix.close(cint(ev.rsock)) == -1:
-      raiseIOSelectorsError(osLastError())
-    if posix.close(cint(ev.wsock)) == -1:
-      raiseIOSelectorsError(osLastError())
+    let res1 = posix.close(cint(ev.rsock))
+    let res2 = posix.close(cint(ev.wsock))
     deallocShared(cast[pointer](ev))
+    if res1 != 0 or res2 != 0:
+      raiseIOSelectorsError(osLastError())
 
 proc setSelectKey[T](s: Selector[T], fd: SocketHandle, events: set[Event],
                      data: T) =