From: Yehuda Sadeh Date: Fri, 15 Oct 2010 17:16:52 +0000 (-0700) Subject: conf: only set sig handler if wasn't set already X-Git-Tag: v0.22~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=32e790cf03c80b71cd224cf9c2e284fe82d5a820;p=ceph.git conf: only set sig handler if wasn't set already Signed-off-by: Yehuda Sadeh --- diff --git a/src/config.cc b/src/config.cc index 324ebccb3b17..95809e14cbbc 100644 --- a/src/config.cc +++ b/src/config.cc @@ -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& 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; }