26 static struct sigaction original_signal_actions[NSIG];
32 static sigset_t original_signal_mask;
44 res = sigprocmask (0, NULL, &original_signal_mask);
48 bool found_preinstalled =
false;
50 for (i = 1; i < NSIG; i++)
52 struct sigaction *oldact = &original_signal_actions[i];
54 res = sigaction (i, NULL, oldact);
55 if (res == -1 &&
errno == EINVAL)
69 && oldact->sa_handler != SIG_DFL
70 && oldact->sa_handler != SIG_IGN)
72 found_preinstalled =
true;
78 _(
"warning: Found custom handler for signal " 79 "%d (%s) preinstalled.\n"), i,
84 if (found_preinstalled)
87 Some signal dispositions inherited from the environment (SIG_DFL/SIG_IGN)\n\ 88 won't be propagated to spawned programs.\n"));
102 for (i = 1; i < NSIG; i++)
104 res = sigaction (i, &original_signal_actions[i], NULL);
105 if (res == -1 &&
errno == EINVAL)
114 res = sigprocmask (SIG_SETMASK, &original_signal_mask, NULL);
void restore_original_signals_state(void)
void save_original_signals_state(bool quiet)
void perror_with_name(const char *string)