diff --git a/core/windows/RdmaConnectedSession.cpp b/core/windows/RdmaConnectedSession.cpp index 3c22711..529099c 100644 --- a/core/windows/RdmaConnectedSession.cpp +++ b/core/windows/RdmaConnectedSession.cpp @@ -52,7 +52,9 @@ void RdmaConnectedSession::Destroy() try { if (connector.get()) { OverlappedWrapper overlapped; - HandleHROverlapped(connector->Disconnect(overlapped), connector, overlapped); + // For some reason, EventHandler in Windows waits until RDMA Close is called from Linux's connector session + // before it exits. Adding a timeout to allow the thread to exit earlier. + HandleHROverlappedWithTimeout(connector->Disconnect(overlapped), connector, overlapped, 100); } } catch (std::exception&) { }