8 #ifndef SCARAB_SIGNAL_HANDLER_HH_ 9 #define SCARAB_SIGNAL_HANDLER_HH_ 71 void add_cancelable(
cancelable* a_cancelable );
73 void remove_cancelable(
cancelable* a_cancelable );
79 static void add_cancelable_s(
cancelable* a_cancelable );
81 static void remove_cancelable_s(
cancelable* a_cancelable );
84 [[noreturn]]
static void handle_terminate() noexcept;
87 static void handle_exit_error(
int a_sig );
90 static void handle_exit_success(
int a_sig );
93 [[noreturn]]
static void terminate(
int a_code ) noexcept;
96 static void exit(
int a_code );
99 static void print_current_exception(
bool a_use_logging );
102 static void print_stack_trace(
bool a_use_logging );
105 static void cancel_all(
int a_code );
#define mv_accessible_static_noset
cancelers::iterator cancelers_it_t
static cancelers s_cancelers
cancelers::const_iterator cancelers_cit_t
Deals with cleanly exiting an application, and includes signal and std::terminate handler functions...
#define mv_accessible_static
static std::recursive_mutex s_mutex
std::set< cancelable *> cancelers