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