From c45f7dc35ec1fca2d2ba7c61c158995d4e8675bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6nke=20Ludwig?= Date: Sat, 16 Dec 2017 17:55:13 +0100 Subject: [PATCH] Properly increment the waiter count during async TCP connect. --- source/eventcore/drivers/winapi/sockets.d | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/eventcore/drivers/winapi/sockets.d b/source/eventcore/drivers/winapi/sockets.d index 4e413d1..550efca 100644 --- a/source/eventcore/drivers/winapi/sockets.d +++ b/source/eventcore/drivers/winapi/sockets.d @@ -72,6 +72,8 @@ final class WinAPIEventDriverSockets : EventDriverSockets { connectCallback = on_connect; state = ConnectionState.connecting; } + + m_core.addWaiter(); addRef(sock); return sock; } else { @@ -787,6 +789,7 @@ final class WinAPIEventDriverSockets : EventDriverSockets { case FD_CONNECT: auto cb = slot.streamSocket.connectCallback; slot.streamSocket.connectCallback = null; + slot.common.driver.m_core.removeWaiter(); if (err) { slot.streamSocket.state = ConnectionState.closed; cb(cast(StreamSocketFD)sock, ConnectStatus.refused);