git-htl-init_sigset
authorGNU Libc Maintainers <debian-glibc@lists.debian.org>
Sun, 10 Jul 2022 20:29:34 +0000 (21:29 +0100)
committerAurelien Jarno <aurel32@debian.org>
Sun, 10 Jul 2022 20:29:34 +0000 (21:29 +0100)
Commited for 2.35

commit 514638699d4b76826096a5f47136dc58f7619944
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Sun Sep 26 02:40:26 2021 +0200

    htl: Fix sigset of main thread

    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.

Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name git-htl-init_sigset.diff

htl/pt-create.c

index f0a1f1ab091a6d4f0e64c0b9f2cf36a69719aa24..b9cf2e1d60d42e1134bda860e56ba70d838cce47 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);