Fix signal handler installation
[urcu.git] / urcu.c
diff --git a/urcu.c b/urcu.c
index b71e162b3fca1e29f83e02b6cd405e68b154147e..c07df2e8cf21384a07da3bb47066cd2b2bb44084 100644 (file)
--- a/urcu.c
+++ b/urcu.c
 /* Do not #define _LGPL_SOURCE to ensure we can emit the wrapper symbols */
 #include "urcu.h"
 
+#ifndef DEBUG_FULL_MB
 void __attribute__((constructor)) urcu_init(void);
 void __attribute__((destructor)) urcu_exit(void);
+#else
+static inline urcu_init(void)
+{
+}
+#endif
 
 int init_done;
 
@@ -445,6 +451,8 @@ void urcu_init(void)
        init_done = 1;
 
        act.sa_sigaction = sigurcu_handler;
+       act.sa_flags = SA_SIGINFO;
+       sigemptyset(&act.sa_mask);
        ret = sigaction(SIGURCU, &act, NULL);
        if (ret) {
                perror("Error in sigaction");
This page took 0.022276 seconds and 4 git commands to generate.