From: Carlos O'Donell <carlos@redhat.com>
To: Florian Weimer <fweimer@redhat.com>, libc-alpha@sourceware.org
Subject: Re: [PATCH 19/19] Linux: Use __pthread_attr_setsigmask_internal for timer helper thread
Date: Tue, 2 Jun 2020 00:07:16 -0400 [thread overview]
Message-ID: <5ca7f5c1-af75-c847-0760-e992060a3f1e@redhat.com> (raw)
In-Reply-To: <a36f025f85c1d8481308023ad3864ea476c4f75f.1589884403.git.fweimer@redhat.com>
On 5/19/20 6:45 AM, Florian Weimer via Libc-alpha wrote:
> timer_create needs to create threads with all signals blocked,
> including SIGTIMER (which happens to equal SIGCANCEL). Add a new
> internal interface which provides an explicit way to achieve that.
OK with commit message fixed (last sentence removed).
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
>
> Fixes commit b3cae39dcbfa2432b3f3aa28854d8ac57f0de1b8 ("nptl: Start
> new threads with all signals blocked [BZ #25098]").
> ---
> sysdeps/unix/sysv/linux/timer_routines.c | 19 ++++++++++---------
> 1 file changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/sysdeps/unix/sysv/linux/timer_routines.c b/sysdeps/unix/sysv/linux/timer_routines.c
> index 63083f6f91..86fad2a2c0 100644
> --- a/sysdeps/unix/sysv/linux/timer_routines.c
> +++ b/sysdeps/unix/sysv/linux/timer_routines.c
> @@ -136,23 +136,24 @@ __start_helper_thread (void)
> (void) pthread_attr_init (&attr);
> (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
>
> - /* Block all signals in the helper thread but SIGSETXID. To do this
> - thoroughly we temporarily have to block all signals here. The
> - helper can lose wakeups if SIGTIMER is not blocked throughout. */
> + /* Block all signals in the helper thread but SIGSETXID. */
> sigset_t ss;
> - __libc_signal_block_app (&ss);
> - __libc_signal_block_sigtimer (NULL);
> + __sigfillset (&ss);
> + __sigdelset (&ss, SIGSETXID);
> + int res = __pthread_attr_setsigmask_internal (&attr, &ss);
OK. Yay, use the interface :-)
> + if (res != 0)
> + {
> + pthread_attr_destroy (&attr);
> + return;
> + }
>
> /* Create the helper thread for this timer. */
> pthread_t th;
> - int res = pthread_create (&th, &attr, timer_helper_thread, NULL);
> + res = pthread_create (&th, &attr, timer_helper_thread, NULL);
OK.
> if (res == 0)
> /* We managed to start the helper thread. */
> __helper_tid = ((struct pthread *) th)->tid;
>
> - /* Restore the signal mask. */
> - __libc_signal_restore_set (&ss);
OK.
> -
> /* No need for the attribute anymore. */
> (void) pthread_attr_destroy (&attr);
>
>
--
Cheers,
Carlos.
next prev parent reply other threads:[~2020-06-02 4:07 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-19 10:43 [PATCH 00/19] Signal mask " Florian Weimer
2020-05-19 10:44 ` [PATCH 01/19] manual: Add missing section and node for clockid_t wait functions Florian Weimer
2020-05-20 13:12 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 02/19] nptl: Replace some stubs with the Linux implementation Florian Weimer
2020-05-20 13:27 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 03/19] nptl: Move pthread_attr_setaffinity_np into libc Florian Weimer
2020-05-20 13:31 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 04/19] nptl: Move pthread_getaffinity_np " Florian Weimer
2020-05-20 13:52 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 05/19] nptl: Move pthread_gettattr_np " Florian Weimer
2020-05-20 13:57 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 06/19] nptl: Make __pthread_attr_init, __pthread_attr_destroy available internally Florian Weimer
2020-05-20 13:59 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 07/19] nptl: Add __pthread_attr_copy for copying pthread_attr_t objects Florian Weimer
2020-05-20 14:10 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 08/19] nptl: Use __pthread_attr_copy in pthread_getattr_default_np (bug 25999) Florian Weimer
2020-05-20 14:42 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 09/19] nptl: Use __pthread_attr_copy in pthread_setattr_default_np Florian Weimer
2020-05-20 14:48 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 10/19] <libc-symbols.h>: Add libpthread hidden alias support Florian Weimer
2020-05-20 14:51 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 11/19] nptl: Add internal alias __pthread_getattr_default_np Florian Weimer
2020-06-02 3:28 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 12/19] nptl: Use __pthread_getattr_default_np in pthread_create Florian Weimer
2020-06-02 3:34 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 13/19] nptl: Use __pthread_attr_setaffinity_np in pthread_getattr_np Florian Weimer
2020-06-02 3:36 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 14/19] nptl: Change type of __default_pthread_attr Florian Weimer
2020-06-02 3:39 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 15/19] nptl: Destroy the default thread attribute as part of freeres Florian Weimer
2020-06-02 3:41 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 16/19] nptl: Make pthread_attr_t dynamically extensible Florian Weimer
2020-06-02 3:47 ` Carlos O'Donell
2020-05-19 10:44 ` [PATCH 17/19] nptl: Add pthread_attr_setsigmask_np, pthread_attr_getsigmask_np Florian Weimer
2020-06-02 4:01 ` Carlos O'Donell
2020-05-19 10:45 ` [PATCH 18/19] manual: " Florian Weimer
2020-05-20 7:39 ` Michael Kerrisk
2020-06-03 9:26 ` Florian Weimer
2020-06-02 4:05 ` Carlos O'Donell
2020-05-19 10:45 ` [PATCH 19/19] Linux: Use __pthread_attr_setsigmask_internal for timer helper thread Florian Weimer
2020-06-02 4:07 ` Carlos O'Donell [this message]
2020-05-20 13:11 ` [PATCH 00/19] Signal mask " Carlos O'Donell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5ca7f5c1-af75-c847-0760-e992060a3f1e@redhat.com \
--to=carlos@redhat.com \
--cc=fweimer@redhat.com \
--cc=libc-alpha@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).