/* Signal mask saved by outermost signal blocker. */
static sigset_t saved_signal_mask;
+/* Disabled by fatal_signal_fork()? */
+static bool disabled;
+
static void call_sigprocmask(int how, sigset_t* new_set, sigset_t* old_set);
static void atexit_handler(void);
static void call_hooks(int sig_nr);
sigaddset(&fatal_signal_set, sig_nr);
if (sigaction(sig_nr, NULL, &old_sa)) {
- fatal(errno, "sigaction");
+ ofp_fatal(errno, "sigaction");
}
if (old_sa.sa_handler == SIG_DFL
&& signal(sig_nr, fatal_signal_handler) == SIG_ERR) {
- fatal(errno, "signal");
+ ofp_fatal(errno, "signal");
}
}
atexit(atexit_handler);
static void
atexit_handler(void)
{
- call_hooks(0);
+ if (!disabled) {
+ call_hooks(0);
+ }
}
static void
\f
static char **files;
static size_t n_files, max_files;
-static bool disabled;
static void unlink_files(void *aux);
static void do_unlink_files(void);
static void
do_unlink_files(void)
{
- if (!disabled) {
- size_t i;
+ size_t i;
- for (i = 0; i < n_files; i++) {
- unlink(files[i]);
- }
+ for (i = 0; i < n_files; i++) {
+ unlink(files[i]);
}
}
\f