From c38a64d3a9b812e066c62ad0d9426d7f51535521 Mon Sep 17 00:00:00 2001 From: Ron Koenderink Date: Wed, 16 Mar 2005 02:39:51 +0000 Subject: [PATCH] (loc_Ctrl_C_Handler,loc_Exit_Handler) [_WIN32]: Process other exit methods in the same way as ctrl-c. Change loc_Ctrl_C_Handler() to loc_Exit_Handler() to reflect changed functionality. --- src/lib/empthread/ntthread.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/lib/empthread/ntthread.c b/src/lib/empthread/ntthread.c index 41af8852..a880e719 100644 --- a/src/lib/empthread/ntthread.c +++ b/src/lib/empthread/ntthread.c @@ -286,28 +286,27 @@ loc_SleepThisThread(unsigned long ulMillisecs) /************************ - * loc_Ctrl_C_Handler + * loc_Exit_Handler * - * Ctrl-C will initiate a shutdown. This is done by calling - * empth_request_shutdown() + * Ctrl-C, Ctrl-Break, Window-Closure, User-Logging-Off or + * System-Shutdown will initiate a shutdown. + * This is done by calling empth_request_shutdown() */ static BOOL -loc_Ctrl_C_Handler(DWORD fdwCtrlType) +loc_Exit_Handler(DWORD fdwCtrlType) { switch (fdwCtrlType) { - // Handle the CTRL+C signal. case CTRL_C_EVENT: - empth_request_shutdown(); - return TRUE; - case CTRL_CLOSE_EVENT: case CTRL_BREAK_EVENT: case CTRL_LOGOFF_EVENT: case CTRL_SHUTDOWN_EVENT: - default: - return FALSE; - } + empth_request_shutdown(); + return TRUE; + default: + return FALSE; + } } /************************ @@ -317,7 +316,7 @@ loc_Ctrl_C_Handler(DWORD fdwCtrlType) * This is done by signalling hShutdownEvent. */ void -empth_request_shutdown(void) +empth_request_shutdown(void) { SetEvent(loc_GVAR.hShutdownEvent); } @@ -419,7 +418,7 @@ empth_init(char **ctx_ptr, int flags) logerror("Failed to create shutdown event %d", GetLastError()); return 0; } - SetConsoleCtrlHandler((PHANDLER_ROUTINE)loc_Ctrl_C_Handler, TRUE); + SetConsoleCtrlHandler((PHANDLER_ROUTINE)loc_Exit_Handler, TRUE); /* Create the global Thread context. */ pThread = (loc_Thread_t *)malloc(sizeof(*pThread));