Fix: Always check pthread_create for failures
[urcu.git] / src / urcu-defer-impl.h
index b5d79262c03bb88a28cd376d78c4189ca3c578cd..cbb0ca8565bfe2b52806e343f7f61d09117d6f8c 100644 (file)
@@ -409,8 +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);
+       if (ret)
+               urcu_die(ret);
+
+       ret = pthread_sigmask(SIG_SETMASK, &oldmask, NULL);
        urcu_posix_assert(!ret);
 }
 
This page took 0.022832 seconds and 4 git commands to generate.