summaryrefslogtreecommitdiff
path: root/nptl/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/init.c')
-rw-r--r--nptl/init.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/nptl/init.c b/nptl/init.c
index 4237c6eb48..2c85d87b99 100644
--- a/nptl/init.c
+++ b/nptl/init.c
@@ -225,6 +225,16 @@ __pthread_initialize_minimal_internal (void)
NULL, _NSIG / 8);
+ /* The kernel supported POSIX timer handling needs a signal to implement
+ SIGEV_THREAD. We block the signal everywhere but we have to make
+ sure it is not ignored. The signal is a realtime signal so using
+ the default handler is fine (this handler is already selected). */
+ __sigdelset (&sa.sa_mask, SIGCANCEL);
+ __sigaddset (&sa.sa_mask, SIGTIMER);
+ (void) INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_BLOCK, &sa.sa_mask,
+ NULL, _NSIG / 8);
+
+
/* Determine the default allowed stack size. This is the size used
in case the user does not specify one. */
struct rlimit limit;