(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.
This commit is contained in:
Ron Koenderink 2005-03-16 02:39:51 +00:00
parent 1af2a6fc8b
commit c38a64d3a9

View file

@ -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 * Ctrl-C, Ctrl-Break, Window-Closure, User-Logging-Off or
* empth_request_shutdown() * System-Shutdown will initiate a shutdown.
* This is done by calling empth_request_shutdown()
*/ */
static BOOL static BOOL
loc_Ctrl_C_Handler(DWORD fdwCtrlType) loc_Exit_Handler(DWORD fdwCtrlType)
{ {
switch (fdwCtrlType) switch (fdwCtrlType)
{ {
// Handle the CTRL+C signal.
case CTRL_C_EVENT: case CTRL_C_EVENT:
empth_request_shutdown();
return TRUE;
case CTRL_CLOSE_EVENT: case CTRL_CLOSE_EVENT:
case CTRL_BREAK_EVENT: case CTRL_BREAK_EVENT:
case CTRL_LOGOFF_EVENT: case CTRL_LOGOFF_EVENT:
case CTRL_SHUTDOWN_EVENT: case CTRL_SHUTDOWN_EVENT:
default: empth_request_shutdown();
return FALSE; return TRUE;
} default:
return FALSE;
}
} }
/************************ /************************
@ -317,7 +316,7 @@ loc_Ctrl_C_Handler(DWORD fdwCtrlType)
* This is done by signalling hShutdownEvent. * This is done by signalling hShutdownEvent.
*/ */
void void
empth_request_shutdown(void) empth_request_shutdown(void)
{ {
SetEvent(loc_GVAR.hShutdownEvent); SetEvent(loc_GVAR.hShutdownEvent);
} }
@ -419,7 +418,7 @@ empth_init(char **ctx_ptr, int flags)
logerror("Failed to create shutdown event %d", GetLastError()); logerror("Failed to create shutdown event %d", GetLastError());
return 0; return 0;
} }
SetConsoleCtrlHandler((PHANDLER_ROUTINE)loc_Ctrl_C_Handler, TRUE); SetConsoleCtrlHandler((PHANDLER_ROUTINE)loc_Exit_Handler, TRUE);
/* Create the global Thread context. */ /* Create the global Thread context. */
pThread = (loc_Thread_t *)malloc(sizeof(*pThread)); pThread = (loc_Thread_t *)malloc(sizeof(*pThread));