Merge pull request #4618 from endragor/compatible-async-event

AsyncEvent compatible between Windows and non-Windows platforms
This commit is contained in:
Dominik Picheta 2016-08-20 12:16:53 +02:00 • committed by GitHub
commit 2db0f2d46d

View file

@ -1233,7 +1233,7 @@ when defined(windows) or defined(nimdoc):
registerWaitableHandle(p, hProcess, flags, pcd, proccb) registerWaitableHandle(p, hProcess, flags, pcd, proccb)
proc newEvent*(): AsyncEvent = proc newAsyncEvent*(): AsyncEvent =
## Creates new ``AsyncEvent`` object. ## Creates new ``AsyncEvent`` object.
var sa = SECURITY_ATTRIBUTES( var sa = SECURITY_ATTRIBUTES(
nLength: sizeof(SECURITY_ATTRIBUTES).cint, nLength: sizeof(SECURITY_ATTRIBUTES).cint,
@ -1314,7 +1314,7 @@ else:
readCB: Callback readCB: Callback
writeCB: Callback writeCB: Callback
AsyncEvent = SelectEvent AsyncEvent* = SelectEvent
PDispatcher* = ref object of PDispatcherBase PDispatcher* = ref object of PDispatcherBase
selector: Selector[AsyncData] selector: Selector[AsyncData]
@ -1419,7 +1419,7 @@ else:
if adata.writeCB == cb: if adata.writeCB == cb:
adata.writeCB = nil adata.writeCB = nil
update = true update = true
when supportedPlatform: when supportedPlatform:
if (customSet * events) != {}: if (customSet * events) != {}:
let cb = keys[i].data.readCB let cb = keys[i].data.readCB