13 #include "../clib/esignal.h" 14 #include "../clib/logfacility.h" 15 #include "../clib/threadhelp.h" 27 : reload_configuration_signalled( false ),
28 report_status_signalled( false ),
29 scripts_thread_checkpoint( 0 ),
30 tasks_thread_checkpoint( 0 ),
31 active_client_thread_checkpoint( 0 ),
32 check_attack_after_move_function_checkpoint( 0 )
67 struct sigaction sa_null;
69 sigemptyset( &sa_null.sa_mask );
71 if ( sigaction( sig, &sa_null,
nullptr ) == -1 )
73 perror(
"sigaction failed" );
90 sigset_t blocked_sigs;
91 sigemptyset( &blocked_sigs );
92 sigfillset( &blocked_sigs );
93 sigdelset( &blocked_sigs, SIGSEGV );
94 sigdelset( &blocked_sigs, SIGUSR2 );
95 sigdelset( &blocked_sigs, SIGUSR1 );
97 int res = pthread_sigmask( SIG_BLOCK, &blocked_sigs,
nullptr );
100 ERROR_PRINT <<
"pthread_sigmask failed: " << res <<
"\n";
107 main_pthread = pthread_self();
112 int res = pthread_kill( main_pthread, SIGTERM );
115 ERROR_PRINT <<
"pthread_kill failed: " << res <<
"\n";
121 sigset_t expected_signals;
122 sigemptyset( &expected_signals );
123 sigaddset( &expected_signals, SIGHUP );
125 sigaddset( &expected_signals, SIGINT );
126 sigaddset( &expected_signals, SIGQUIT );
127 sigaddset( &expected_signals, SIGTERM );
136 sigwait( &expected_signals, &caught );
160 ERROR_PRINT <<
"Unexpected signal: " << caught <<
"\n";
void install_signal_handlers()
volatile bool reload_configuration_signalled
void install_null_handler(int sig)
void wait_for_empty_queue()
volatile bool report_status_signalled
void signal_catch_thread()
void enable_exit_signaller()
StateManager stateManager
std::atomic< unsigned int > child_threads
void catch_signals_thread(void)
void sigpipe_handler(int x)
LogFacility * global_logger
std::atomic< bool > exit_signalled