commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[hurd,commited] htl: Fix sigset of main thread


From: Samuel Thibault
Subject: [hurd,commited] htl: Fix sigset of main thread
Date: Sun, 26 Sep 2021 02:42:15 +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 | 7 +++++--
 1 file 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);
 
-- 
2.33.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]