From a8985d8dda4e090a6c6570b2d79b5dc19db858b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sun, 11 Dec 2022 10:02:21 +0100 Subject: [PATCH] Windows: Fix shutdown order (stop the main thread before the window gets destroyed) --- Windows/MainWindow.cpp | 4 +++- Windows/main.cpp | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Windows/MainWindow.cpp b/Windows/MainWindow.cpp index 9f3a66e090..de6b09baed 100644 --- a/Windows/MainWindow.cpp +++ b/Windows/MainWindow.cpp @@ -968,6 +968,7 @@ namespace MainWindow break; case WM_CLOSE: + MainThread_Stop(); InputDevice::StopPolling(); WindowsRawInput::Shutdown(); return DefWindowProc(hWnd,message,wParam,lParam); @@ -976,8 +977,9 @@ namespace MainWindow KillTimer(hWnd, TIMER_CURSORUPDATE); KillTimer(hWnd, TIMER_CURSORMOVEUPDATE); KillTimer(hWnd, TIMER_WHEELRELEASE); + // Main window is gone, this tells the message loop to exit. PostQuitMessage(0); - break; + return 0; case WM_USER + 1: NotifyDebuggerMapLoaded(); diff --git a/Windows/main.cpp b/Windows/main.cpp index dc790cd7f8..9351202bee 100644 --- a/Windows/main.cpp +++ b/Windows/main.cpp @@ -776,8 +776,6 @@ int WINAPI WinMain(HINSTANCE _hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLin } } - MainThread_Stop(); - VFSShutdown(); MainWindow::DestroyDebugWindows();