summary refs log tree commit diff stats
path: root/lib/pure/ioselects/ioselectors_poll.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2017-01-27 18:51:46 +0100
committerAndreas Rumpf <rumpf_a@web.de>2017-01-27 18:51:46 +0100
commit1bf78618fea5bd57b0b6ab2dbadd40e1d914b710 (patch)
treebec83e441dced198e58ffd968215b5396ef0371b /lib/pure/ioselects/ioselectors_poll.nim
parent68617adb91ecae00725523ae6bf2833fe6c07bd1 (diff)
parent9c2721c8bb61a8dfd9445b94d1ccb14491ccf450 (diff)
downloadNim-1bf78618fea5bd57b0b6ab2dbadd40e1d914b710.tar.gz
Merge branch 'fix5290' of https://github.com/cheatfate/Nim into cheatfate-fix5290
Diffstat (limited to 'lib/pure/ioselects/ioselectors_poll.nim')
-rw-r--r--lib/pure/ioselects/ioselectors_poll.nim10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/pure/ioselects/ioselectors_poll.nim b/lib/pure/ioselects/ioselectors_poll.nim
index 26fe60b54..9c6f9796f 100644
--- a/lib/pure/ioselects/ioselectors_poll.nim
+++ b/lib/pure/ioselects/ioselectors_poll.nim
@@ -199,7 +199,7 @@ proc unregister*[T](s: Selector[T], ev: SelectEvent) =
 
 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])
@@ -213,11 +213,11 @@ proc setEvent*(ev: SelectEvent) =
     raiseIOSelectorsError(osLastError())
 
 proc close*(ev: SelectEvent) =
-  if posix.close(cint(ev.rfd)) == -1:
-    raiseIOSelectorsError(osLastError())
-  if posix.close(cint(ev.wfd)) == -1:
-    raiseIOSelectorsError(osLastError())
+  let res1 = posix.close(ev.rfd)
+  let res2 = posix.close(ev.wfd)
   deallocShared(cast[pointer](ev))
+  if res1 != 0 or res2 != 0:
+    raiseIOSelectorsError(osLastError())
 
 proc selectInto*[T](s: Selector[T], timeout: int,
                     results: var openarray[ReadyKey]): int =