about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--htl/pt-create.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/htl/pt-create.c b/htl/pt-create.c
index a6c9ab3e93..d30c27fd36 100644
--- a/htl/pt-create.c
+++ b/htl/pt-create.c
@@ -213,8 +213,11 @@ __pthread_create_internal (struct __pthread **thread,
     err = __pthread_sigstate (_pthread_self (), 0, 0, &pthread->init_sigset, 0);
   assert_perror (err);
 
-  /* But block the signals for now, until the thread is fully initialized.  */
-  __sigfillset (&sigset);
+  if (start_routine)
+    /* But block the signals for now, until the thread is fully initialized.  */
+    __sigfillset (&sigset);
+  else
+    sigset = pthread->init_sigset;
   err = __pthread_sigstate (pthread, SIG_SETMASK, &sigset, 0, 1);
   assert_perror (err);