Add asyncdispatch.unregister.

This commit is contained in:
Dominik Picheta 2014-05-23 13:53:27 +01:00
commit b386d38208

View file

@ -537,6 +537,10 @@ when defined(windows) or defined(nimdoc):
socket.TSocketHandle.close() socket.TSocketHandle.close()
getGlobalDispatcher().handles.excl(socket) getGlobalDispatcher().handles.excl(socket)
proc unregister*(fd: TAsyncFD) =
## Unregisters ``fd``.
getGlobalDispatcher().handles.excl(fd)
initAll() initAll()
else: else:
import selectors import selectors
@ -586,6 +590,9 @@ else:
sock.TSocketHandle.close() sock.TSocketHandle.close()
disp.selector.unregister(sock.TSocketHandle) disp.selector.unregister(sock.TSocketHandle)
proc unregister*(fd: TAsyncFD) =
getGlobalDispatcher().selector.unregister(fd.TSocketHandle)
proc addRead(sock: TAsyncFD, cb: TCallback) = proc addRead(sock: TAsyncFD, cb: TCallback) =
let p = getGlobalDispatcher() let p = getGlobalDispatcher()
if sock.TSocketHandle notin p.selector: if sock.TSocketHandle notin p.selector: