X-Git-Url: http://git.lttng.org/?p=userspace-rcu.git;a=blobdiff_plain;f=src%2Furcu-defer-impl.h;fp=src%2Furcu-defer-impl.h;h=1c9628792ac494db61c870c204811b3f1df61d72;hp=b5d79262c03bb88a28cd376d78c4189ca3c578cd;hb=ea3a28a3f71dd02fb34ed4e3108f93275dbef89a;hpb=d428afc44ee5aa598c8033939ae1c1ac806f1a15 diff --git a/src/urcu-defer-impl.h b/src/urcu-defer-impl.h index b5d7926..1c96287 100644 --- a/src/urcu-defer-impl.h +++ b/src/urcu-defer-impl.h @@ -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)