]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
htl: Fix sigset of main thread
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Sun, 26 Sep 2021 00:40:26 +0000 (02:40 +0200)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Sun, 26 Sep 2021 00:40:26 +0000 (02:40 +0200)
d482ebfa6785 ('htl: Keep thread signals blocked during its initialization')
fixed not letting signals get delivered too early during thread creation,
but it also affected the main thread, thus making it block signals by
default.  We need to just let the main thread sigset as it is.

htl/pt-create.c

index a6c9ab3e93e2d4796df2fe4db425cf3ee8c0f77a..d30c27fd36a836979876addd18d6622ca9c93797 100644 (file)
@@ -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);