From 7dbad79c376f4c8a9eef0b0e11bdd66e5f3c17ce Mon Sep 17 00:00:00 2001 From: GNU Libc Maintainers Date: Sun, 10 Jul 2022 21:29:34 +0100 Subject: [PATCH] git-htl-init_sigset Commited for 2.35 commit 514638699d4b76826096a5f47136dc58f7619944 Author: Samuel Thibault 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 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/htl/pt-create.c b/htl/pt-create.c index f0a1f1ab0..b9cf2e1d6 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.30.2