+ #include <signal.h>
+ #include <windows.h>
+
+ BOOL WINAPI event_handler(DWORD sig)
+ {
+ switch(sig)
+ {
+ case CTRL_C_EVENT:
+ case CTRL_CLOSE_EVENT:
+ case CTRL_LOGOFF_EVENT:
+ case CTRL_SHUTDOWN_EVENT:
+
+ if(g_killed == false)
+ {
+ dstream<<DTIME<<"INFO: event_handler(): "
+ <<"Ctrl+C, Close Event, Logoff Event or Shutdown Event, shutting down."<<std::endl;
+ // Comment out for less clutter when testing scripts
+ /*dstream<<DTIME<<"INFO: event_handler(): "
+ <<"Printing debug stacks"<<std::endl;
+ debug_stacks_print();*/
+
+ g_killed = true;
+ }
+ else
+ {
+ (void)signal(SIGINT, SIG_DFL);
+ }