From 68c7bf3b55ca132143686ab433659c3b828760aa Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 4 May 2021 20:42:25 +0300 Subject: attempt to fix some problems on exit --- plugins/Console/src/Console.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'plugins/Console/src') diff --git a/plugins/Console/src/Console.cpp b/plugins/Console/src/Console.cpp index cb19571c36..6bf70f4454 100644 --- a/plugins/Console/src/Console.cpp +++ b/plugins/Console/src/Console.cpp @@ -894,6 +894,7 @@ static INT_PTR CALLBACK ConsoleDlgProc(HWND hwndDlg, UINT message, WPARAM wParam void __cdecl ConsoleThread(void*) { + MThreadHandle threadLock(hConsoleThread); CoInitialize(nullptr); HWND hwnd = CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_CONSOLE), nullptr, ConsoleDlgProc); @@ -1211,7 +1212,7 @@ void InitConsole() LoadSettings(); - hConsoleThread = mir_forkthread(ConsoleThread); + mir_forkthread(ConsoleThread); HookEvent(ME_SYSTEM_PRESHUTDOWN, PreshutdownConsole); HookEvent(ME_SYSTEM_MODULESLOADED, OnSystemModulesLoaded); @@ -1225,15 +1226,17 @@ void ShutdownConsole(void) List_Destroy(&lModules); - if (gImg) ImageList_Destroy(gImg); + if (gImg) + ImageList_Destroy(gImg); - for (i = 0; i < _countof(hIcons); i++) { - if (hIcons[i]) DestroyIcon(hIcons[i]); - } + for (i = 0; i < _countof(hIcons); i++) + if (hIcons[i]) + DestroyIcon(hIcons[i]); if (hwndConsole) EndDialog(hwndConsole, TRUE); - WaitForSingleObject(hConsoleThread, INFINITE); + if (hConsoleThread) + WaitForSingleObject(hConsoleThread, INFINITE); } //////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3