43    enum class Handler_CB {
 
   51    static void pass_sig_handler(
int sig);
 
   53    static void force_exit_sig_handler(
int sig);
 
   55    void add_sig_handler(
int signum, Handler_CB 
s_cb);
 
   57    template <
typename CONT_TYPE>
 
   58    void register_cb(
const std::string& name, std::unordered_map<std::string, std::function<CONT_TYPE>>& container,
 
   59                     const std::function<CONT_TYPE>& 
cb, 
const std::string& 
type_of_cb);
 
   61    template <
typename CONT_TYPE>
 
   62    void deregister_cb(
const std::string& name, std::unordered_map<std::string, std::function<CONT_TYPE>>& container,
 
   65    void register_on_exit_cb(
const std::string& name, 
const std::function<
void()>& 
cb);
 
   67    void deregister_on_exit_cb(
const std::string& name);
 
   69    void add_to_block_set(
int signum);
 
   71    void reset_block_set();
 
   73    void block_signal_set();
 
   89    void register_handler(
const std::string& name, 
const std::function<
void(
int)>& 
handler);
 
   91    void deregister_handler(
const std::string& name);
 
   93    int get_write_sock_end();
 
   95    void set_sig_num(
int val);
 
  101    void end_of_simulation();
 
  104    void _start_pass_signal_handler();
 
  113    void _update_sig_cb(
int signum, Handler_CB 
s_cb);
 
  115    void _update_all_sigs_cb();
 
  117    void _change_sig_cbs_to_dfl();
 
  120    std::map<int, Handler_CB> m_signals;
 
  121    std::map<int, std::string> error_signals;
 
  123    struct pollfd self_pipe_monitor;
 
  124    std::thread pass_handler;
 
  125    std::unordered_map<std::string, std::function<
void(
int)>> handlers;
 
  126    std::unordered_map<std::string, std::function<
void()>> exit_handlers;
 
  127    std::atomic_bool is_pass_handler_requested;
 
  128    std::atomic_bool stop_running;
 
  129    std::atomic_int32_t sig_num;
 
  130    int self_sockpair_fd[2];
 
  137    std::mutex thread_start_mutex;
 
  138    std::mutex signals_mutex;
 
 
  150    void recv_sockpair_fds_from_remote(
int fd0, 
int fd1);
 
  152    int get_sockpair_fd0() 
const;
 
  154    int get_sockpair_fd1() 
const;
 
  156    pid_t get_ppid() 
const;
 
  158    void init_peer_conn_checker();
 
  160    void setup_parent_conn_checker();
 
  176    std::atomic_bool stop_running;
 
  178    std::thread child_waiter;
 
  179    std::thread parent_alive_checker;
 
  180    int m_sock_pair_fds[2];
 
  182    bool m_is_parent_setup_called;