aboutsummaryrefslogtreecommitdiff
path: root/nptl/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/init.c')
-rw-r--r--nptl/init.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/nptl/init.c b/nptl/init.c
index df8e67a83e..e4e30815a6 100644
--- a/nptl/init.c
+++ b/nptl/init.c
@@ -209,6 +209,13 @@ __pthread_initialize_minimal_internal (void)
(void) __libc_sigaction (SIGCANCEL, &sa, NULL);
+ /* The parent process might have left the signal blocked. Just in
+ case, unblock it. We reuse the signal mask in the sigaction
+ structure. It is already cleared. */
+ __sigaddset (&sa.sa_mask, SIGCANCEL);
+ (void) INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_UNBLOCK, &sa.sa_mask,
+ NULL, _NSIG / 8);
+
/* Determine the default allowed stack size. This is the size used
in case the user does not specify one. */