summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@googlemail.com>2014-03-14 20:18:51 +0000
committerDominik Picheta <dominikpicheta@googlemail.com>2014-03-14 20:18:51 +0000
commitafb7dbf81ae3456c19b8b7dd65eeb3ec5bebb40d (patch)
tree685767a2abc63fa36ed7f199197e408f5322f981
parent1a75b17cd03caac6b26588a0572c1032b024f1c8 (diff)
downloadNim-afb7dbf81ae3456c19b8b7dd65eeb3ec5bebb40d.tar.gz
Fixes compilation of asyncio2 on Windows.
Added a close(PDispatcher, TSocketHandle) implementation which unregisters the handle.
-rw-r--r--lib/pure/asyncio2.nim6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/pure/asyncio2.nim b/lib/pure/asyncio2.nim
index 0ea4d7e79..43247ba7e 100644
--- a/lib/pure/asyncio2.nim
+++ b/lib/pure/asyncio2.nim
@@ -132,7 +132,6 @@ when defined(windows) or defined(nimdoc):
cast[TCompletionKey](sock), 1) == 0:
OSError(OSLastError())
p.handles.incl(sock)
- # TODO: fd closure detection, we need to remove the fd from handles set
proc verifyPresence(p: PDispatcher, sock: TSocketHandle) =
## Ensures that socket has been registered with the dispatcher.
@@ -475,6 +474,11 @@ when defined(windows) or defined(nimdoc):
result = socket(domain, typ, protocol)
disp.register(result)
+ proc close*(disp: PDispatcher, socket: TSocketHandle) =
+ ## Closes a socket and ensures that it is unregistered.
+ socket.close()
+ disp.handles.excl(socket)
+
initAll()
else:
import selectors