stp: Increase hello time to 2 seconds.
[sliver-openvswitch.git] / lib / fatal-signal.c
index 95f54ff..ac9e2a5 100644 (file)
@@ -64,6 +64,9 @@ static int block_level = 0;
 /* 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);
@@ -105,11 +108,11 @@ fatal_signal_block()
 
             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);
@@ -156,7 +159,9 @@ fatal_signal_handler(int sig_nr)
 static void
 atexit_handler(void)
 {
-    call_hooks(0);
+    if (!disabled) {
+        call_hooks(0);
+    }
 }
 
 static void
@@ -179,7 +184,6 @@ call_hooks(int sig_nr)
 \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);
@@ -231,12 +235,10 @@ unlink_files(void *aux UNUSED)
 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