about summary refs log tree commit diff
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.  */