Exemple #1
0
int safe_signal (int n, void (*p) (int))
{
  struct sigaction u, v;
  u.sa_handler = p;
  sigemptyset (&u.sa_mask);
  u.sa_flags = 0;
  return (safe_sigaction (n, &u, &v));
}
void os_init_prolog_globals(void)
{
    struct sigaction action;

    action.sa_handler = sigsegv_handler;
	sigemptyset(&action.sa_mask);
	action.sa_flags = 0;
    safe_sigaction(SIGSEGV, &action, &original_sigsegv_action);
}
Exemple #3
0
static void
setup_signals (void)
{
    unsigned i = 0;
    struct sigaction sa;

    sa.sa_handler = handle_signal;
    sa.sa_flags = SA_NOCLDSTOP;
    sigfillset(&sa.sa_mask);

    while (forward_signals[i].code!= NO_SIGNAL) {
        safe_sigaction (forward_signals[i].name,
                        forward_signals[i].code, &sa);
        i++;
    }

    safe_sigaction ("CHLD", SIGCHLD, &sa);
    safe_sigaction ("TERM", SIGTERM, &sa);
    safe_sigaction ("INT" , SIGINT , &sa);
}