#include #ifdef G_OS_UNIX #include #endif #ifdef G_OS_WIN32 #include #include #endif #include "signal_handler.h" GtkArdourSignalHandler::GtkArdourSignalHandler() { #ifdef G_OS_UNIX PBD::signal (SIGHUP, PBD::termination_signal_handler, 0); PBD::signal (SIGINT, PBD::termination_signal_handler, 0); PBD::signal (SIGQUIT, PBD::termination_signal_handler, 0); PBD::signal (SIGBUS, PBD::fatal_signal_handler, 0); PBD::signal (SIGSEGV, PBD::fatal_signal_handler, 0); PBD::signal (SIGTERM, PBD::fatal_signal_handler, 0); PBD::signal (SIGFPE, PBD::fatal_signal_handler, 0); // Ignore SIGPIPE PBD::signal (SIGPIPE, SIG_IGN, 0); // Restart syscalls interrupted by SIGCHLD // PBD::signal (SIGCHLD, SIG_DFL, SA_RESTART); #endif // Windows?? } GtkArdourSignalHandler::~GtkArdourSignalHandler() { #ifdef G_OS_WIN32 PBD::terminate_process(EXIT_SUCCESS); #endif }