From 1d00ec71b6278f38ed40a7dba5435c89167ae325 Mon Sep 17 00:00:00 2001 From: "seer-by-sentry[bot]" <157164994+seer-by-sentry[bot]@users.noreply.github.com> Date: Sun, 12 Oct 2025 11:45:09 +0000 Subject: [PATCH] OnlineServices: Shutdown HTTP manager before WebSocket --- .../GeneralsOnline/OnlineServices_Init.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/GeneralsMD/Code/GameEngine/Source/GameNetwork/GeneralsOnline/OnlineServices_Init.cpp b/GeneralsMD/Code/GameEngine/Source/GameNetwork/GeneralsOnline/OnlineServices_Init.cpp index 4495d1ecbdd..27fc9474bd5 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameNetwork/GeneralsOnline/OnlineServices_Init.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameNetwork/GeneralsOnline/OnlineServices_Init.cpp @@ -263,6 +263,14 @@ void NGMP_OnlineServicesManager::WaitForScreenshotThreads() void NGMP_OnlineServicesManager::Shutdown() { + // Shutdown HTTP manager FIRST to complete any pending requests + // This ensures all HTTP callbacks complete before we destroy other objects they might reference + if (m_pHTTPManager != nullptr) + { + m_pHTTPManager->Shutdown(); + } + + // Then shutdown WebSocket after HTTP callbacks have completed if (m_pWebSocket) { m_pWebSocket->Shutdown(); @@ -270,12 +278,6 @@ void NGMP_OnlineServicesManager::Shutdown() m_pWebSocket.reset(); } - // Then shutdown HTTP manager to complete any pending requests - if (m_pHTTPManager != nullptr) - { - m_pHTTPManager->Shutdown(); - } - // Finally shutdown Sentry ShutdownSentry();