static void DoCrashSignalHandler( int signal, siginfo_t *si, const ucontext_t *uc ) { /* Don't dump a debug file if the user just hit ^C. */ if( !IsFatalSignal(signal) ) return; CrashSignalHandler( signal, si, uc ); }
static void DoCleanShutdown( int signal, siginfo_t *si, const ucontext_t *uc ) { if( IsFatalSignal(signal) ) return; /* ^C. */ ExitGame(); }
static bool DoCrashSignalHandler( int signal, siginfo_t *si, const ucontext_t *uc ) { /* Don't dump a debug file if the user just hit ^C. */ if( !IsFatalSignal(signal) ) return true; CrashHandler::CrashSignalHandler( signal, si, uc ); return false; }
static bool DoCleanShutdown( int signal, siginfo_t *si, const ucontext_t *uc ) { if( IsFatalSignal(signal) ) return false; /* ^C. */ ArchHooks::SetUserQuit(); return true; }
static bool EmergencyShutdown( int signal, siginfo_t *si, const ucontext_t *uc ) { if( !IsFatalSignal(signal) ) return false; DoEmergencyShutdown(); #if defined(CRASH_HANDLER) /* If we ran the crash handler, then die. */ kill( getpid(), SIGKILL ); #endif /* We didn't run the crash handler. Run the default handler, so we can dump core. */ return false; }
static void EmergencyShutdown( int signal, siginfo_t *si, const ucontext_t *uc ) { if( !IsFatalSignal(signal) ) return; DoEmergencyShutdown(); #if defined(CRASH_HANDLER) /* If we ran the crash handler, then die. */ kill( getpid(), SIGKILL ); #else /* We didn't run the crash handler. Run the default handler, so we can dump core. */ SignalHandler::ResetSignalHandlers(); raise( signal ); #endif }
static bool DoEmergencyShutdown( int signal, siginfo_t *si, const ucontext_t *us ) { if( IsFatalSignal(signal) ) _exit( 1 ); // We ran the crash handler already return false; }