From a48c9823242c816ace5b516f11e7cb7d4e93ef7d Mon Sep 17 00:00:00 2001 From: Yuriy Glukhov Date: Thu, 3 May 2018 15:48:53 +0300 Subject: [PATCH 1/2] Fixes #7758 --- lib/pure/asyncdispatch.nim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/pure/asyncdispatch.nim b/lib/pure/asyncdispatch.nim index dfc7201b8c7ad..679b8895b5a62 100644 --- a/lib/pure/asyncdispatch.nim +++ b/lib/pure/asyncdispatch.nim @@ -1122,7 +1122,7 @@ else: proc unregister*(ev: AsyncEvent) = getGlobalDispatcher().selector.unregister(SelectEvent(ev)) - + proc contains*(disp: PDispatcher, fd: AsyncFd): bool = return fd.SocketHandle in disp.selector @@ -1270,6 +1270,8 @@ else: if rLength > 0: incl(newEvents, Event.Read) if wLength > 0: incl(newEvents, Event.Write) p.selector.updateHandle(SocketHandle(fd), newEvents) + else: + sleep(p.adjustedTimeout(timeout)) # Timer processing. processTimers(p, result) From f7d837d47ca1b8bbc83b1d6df9b8d71c98b677d1 Mon Sep 17 00:00:00 2001 From: Yuriy Glukhov Date: Thu, 3 May 2018 16:37:00 +0300 Subject: [PATCH 2/2] And the same for windows --- lib/pure/asyncdispatch.nim | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/pure/asyncdispatch.nim b/lib/pure/asyncdispatch.nim index 679b8895b5a62..28958888e8b66 100644 --- a/lib/pure/asyncdispatch.nim +++ b/lib/pure/asyncdispatch.nim @@ -343,6 +343,8 @@ when defined(windows) or defined(nimdoc): # Timed out result = false else: raiseOSError(errCode) + else: + sleep(p.adjustedTimeout(timeout)) # Timer processing. processTimers(p, result)