]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common: add signal_mask_to_str
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Fri, 21 Jan 2011 13:45:01 +0000 (05:45 -0800)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Fri, 21 Jan 2011 14:47:05 +0000 (06:47 -0800)
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
src/common/signal.cc
src/common/signal.h

index 626b48b6525d9a588164eef47178e5c1ce67fcb0..1548f48565a77321c4553e711dde8c11541324bc 100644 (file)
@@ -17,6 +17,7 @@
 #include "common/debug.h"
 
 #include <signal.h>
+#include <sstream>
 #include <stdlib.h>
 #include <sys/stat.h>
 #include <sys/types.h>
@@ -78,6 +79,28 @@ static void handle_fatal_signal(int signum)
   exit(1);
 }
 
+#include <syslog.h>
+
+std::string signal_mask_to_str()
+{
+  sigset_t old_sigset;
+  if (pthread_sigmask(SIG_SETMASK, NULL, &old_sigset)) {
+    return "(pthread_signmask failed)";
+  }
+
+  ostringstream oss;
+  oss << "show_signal_mask: { ";
+  string sep("");
+  for (int signum = 0; signum < NSIG; ++signum) {
+    if (sigismember(&old_sigset, signum) == 1) {
+      oss << sep << signum;
+      sep = ", ";
+    }
+  }
+  oss << " }";
+  return oss.str();
+}
+
 void install_standard_sighandlers(void)
 {
   install_sighandler(SIGHUP, sighup_handler, SA_RESTART);
index a58fcd7a1d618c094a7f5b9d7f281df6369d35ef..6364cc406750d3f9c8e83a25d5d5de208212ddf2 100644 (file)
@@ -17,4 +17,6 @@
 
 void install_standard_sighandlers(void);
 
+std::string signal_mask_to_str();
+
 #endif