From afb7dbf81ae3456c19b8b7dd65eeb3ec5bebb40d Mon Sep 17 00:00:00 2001 From: Dominik Picheta Date: Fri, 14 Mar 2014 20:18:51 +0000 Subject: [PATCH] Fixes compilation of asyncio2 on Windows. Added a close(PDispatcher, TSocketHandle) implementation which unregisters the handle. --- lib/pure/asyncio2.nim | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/pure/asyncio2.nim b/lib/pure/asyncio2.nim index 0ea4d7e791..43247ba7ec 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