forked from qt-creator/qt-creator
process_ctrlc_stub: Remove Ctrl-C child termination mechanism
Since 537ba23fff
we have on Windows a method
that lets the operating system kill child processes when the ctrlc_stub
starter process dies.
Previously process_ctrlc_stub would generate a Ctrl+C event sent via
GenerateConsoleCtrlEvent for the child process to terminate.
This had a sideeffect of terminating also Qt Creator when ran in debug
mode since it shared the console. See QTCREATORBUG-11995 for all
the details.
Change-Id: Ia6fd6240927f95895a4c977e742714f959d3fab7
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -167,13 +167,10 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||||||
{
|
{
|
||||||
if (message == uiShutDownWindowMessage) {
|
if (message == uiShutDownWindowMessage) {
|
||||||
SetConsoleCtrlHandler(interruptHandler, FALSE);
|
SetConsoleCtrlHandler(interruptHandler, FALSE);
|
||||||
SetConsoleCtrlHandler(shutdownHandler, TRUE);
|
|
||||||
GenerateConsoleCtrlEvent(CTRL_C_EVENT, 0);
|
|
||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
return 0;
|
return 0;
|
||||||
} else if (message == uiInterruptMessage) {
|
} else if (message == uiInterruptMessage) {
|
||||||
SetConsoleCtrlHandler(interruptHandler, TRUE);
|
SetConsoleCtrlHandler(interruptHandler, TRUE);
|
||||||
SetConsoleCtrlHandler(shutdownHandler, FALSE);
|
|
||||||
GenerateConsoleCtrlEvent(CTRL_C_EVENT, 0);
|
GenerateConsoleCtrlEvent(CTRL_C_EVENT, 0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -194,12 +191,6 @@ bool isSpaceOrTab(const wchar_t c)
|
|||||||
return c == L' ' || c == L'\t';
|
return c == L' ' || c == L'\t';
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL WINAPI shutdownHandler(DWORD /*dwCtrlType*/)
|
|
||||||
{
|
|
||||||
PostMessage(hwndMain, WM_DESTROY, 0, 0);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL WINAPI interruptHandler(DWORD /*dwCtrlType*/)
|
BOOL WINAPI interruptHandler(DWORD /*dwCtrlType*/)
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
Reference in New Issue
Block a user