From a25b49228f7a9e403712fefb03808052efcd1cee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6nke=20Ludwig?= Date: Thu, 9 Mar 2017 16:02:42 +0100 Subject: [PATCH] Properly count IO completion as an event in WinAPIEventDriverCore.processEvents. --- source/eventcore/drivers/winapi/core.d | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/eventcore/drivers/winapi/core.d b/source/eventcore/drivers/winapi/core.d index 2c4d2a2..58da4e5 100644 --- a/source/eventcore/drivers/winapi/core.d +++ b/source/eventcore/drivers/winapi/core.d @@ -110,12 +110,14 @@ final class WinAPIEventDriverCore : EventDriverCore { auto ret = () @trusted { return MsgWaitForMultipleObjectsEx(cast(DWORD)m_registeredEvents.length, m_registeredEvents.ptr, timeout_msecs, QS_ALLEVENTS, MWMO_ALERTABLE|MWMO_INPUTAVAILABLE); } (); - if (ret >= WAIT_OBJECT_0 && ret < WAIT_OBJECT_0 + m_registeredEvents.length) { + if (ret == WAIT_IO_COMPLETION) got_event = true; + else if (ret >= WAIT_OBJECT_0 && ret < WAIT_OBJECT_0 + m_registeredEvents.length) { if (auto pc = m_registeredEvents[ret - WAIT_OBJECT_0] in m_eventCallbacks) { (*pc)(); got_event = true; } } + /*if (ret == WAIT_OBJECT_0) { got_event = true; Win32TCPConnection[] to_remove;