]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
conf: only set sig handler if wasn't set already
authorYehuda Sadeh <yehuda@hq.newdream.net>
Fri, 15 Oct 2010 17:16:52 +0000 (10:16 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Fri, 15 Oct 2010 17:17:41 +0000 (10:17 -0700)
Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
src/config.cc

index 324ebccb3b170fb13f3b6039eed62e7a24ed32fb..95809e14cbbcb0f514bcf96c2f38f4fb78755465 100644 (file)
@@ -217,8 +217,8 @@ void sighup_handler(int signum)
   logger_reopen_all();
 }
 
-static void (*old_sigsegv_handler)(int);
-static void (*old_sigabrt_handler)(int);
+static void (*old_sigsegv_handler)(int) = NULL;
+static void (*old_sigabrt_handler)(int) = NULL;
 
 void sigsegv_handler(int signum)
 {
@@ -1257,8 +1257,10 @@ void parse_config_options(std::vector<const char*>& args)
   }
 
   signal(SIGHUP, sighup_handler);
-  old_sigsegv_handler = signal(SIGSEGV, sigsegv_handler);
-  old_sigabrt_handler = signal(SIGABRT, sigabrt_handler);
+  if (!old_sigsegv_handler)
+    old_sigsegv_handler = signal(SIGSEGV, sigsegv_handler);
+  if (!old_sigabrt_handler)
+    old_sigabrt_handler = signal(SIGABRT, sigabrt_handler);
 
   args = nargs;
 }