Disable signals in URCU background threads
[urcu.git] / src / urcu-defer-impl.h
index b5d79262c03bb88a28cd376d78c4189ca3c578cd..1c9628792ac494db61c870c204811b3f1df61d72 100644 (file)
@@ -409,9 +409,18 @@ void defer_rcu(void (*fct)(void *p), void *p)
 static void start_defer_thread(void)
 {
        int ret;
+       sigset_t newmask, oldmask;
+
+       ret = sigfillset(&newmask);
+       urcu_posix_assert(!ret);
+       ret = pthread_sigmask(SIG_BLOCK, &newmask, &oldmask);
+       urcu_posix_assert(!ret);
 
        ret = pthread_create(&tid_defer, NULL, thr_defer, NULL);
        urcu_posix_assert(!ret);
+
+       ret = pthread_sigmask(SIG_SETMASK, &oldmask, NULL);
+       urcu_posix_assert(!ret);
 }
 
 static void stop_defer_thread(void)
This page took 0.023853 seconds and 4 git commands to generate.