diff options
author | Florian Weimer <fweimer@redhat.com> | 2021-05-21 22:35:00 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2021-05-21 22:35:00 +0200 |
commit | 2f69522d460611b1018e15df6c238dda2d8d6609 (patch) | |
tree | 1e7a59afe9de337ad58dfdebab4502794db51732 /nptl/pthreadP.h | |
parent | 06a36b70f946548d7bc5bc1b163d1ecf877da071 (diff) | |
download | glibc-2f69522d460611b1018e15df6c238dda2d8d6609.tar.gz |
nptl: Perform signal initialization upon pthread_create
Install signal handlers and unblock signals before pthread_create
creates the first thread.
create_thread in sysdeps/unix/sysv/linux/createthread.c can send
SIGCANCEL to the current thread, so the SIGCANCEL handler is currently
needed even if pthread_cancel is never called. (The way timer_create
uses SIGCANCEL does not need a signal handler; both SIG_DFL and SIG_IGN
dispositions should work.)
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'nptl/pthreadP.h')
-rw-r--r-- | nptl/pthreadP.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index f93806e540..497c2ad3d9 100644 --- a/nptl/pthreadP.h +++ b/nptl/pthreadP.h @@ -571,6 +571,12 @@ libc_hidden_proto (__pthread_attr_setsigmask_internal) extern __typeof (pthread_attr_getsigmask_np) __pthread_attr_getsigmask_np; libc_hidden_proto (__pthread_attr_getsigmask_np) +/* The cancellation signal handler defined alongside with + pthread_cancel. This is included in statically linked binaries + only if pthread_cancel is linked in. */ +void __nptl_sigcancel_handler (int sig, siginfo_t *si, void *ctx); +libc_hidden_proto (__nptl_sigcancel_handler) + /* Special versions which use non-exported functions. */ extern void __pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer, void (*routine) (void *), void *arg); |