From 016a5dc1925a66c7d1ffc14b862b1342f399cfda Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Thu, 14 Apr 2011 12:51:00 -0400 Subject: use a separate signal from SIGCANCEL for SIGEV_THREAD timers otherwise we cannot support an application's desire to use asynchronous cancellation within the callback function. this change also slightly debloats pthread_create.c. --- src/signal/sigaction.c | 2 +- src/signal/sigprocmask.c | 1 + src/signal/sigrtmin.c | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) (limited to 'src/signal') diff --git a/src/signal/sigaction.c b/src/signal/sigaction.c index 3d374e1f..887bbc4f 100644 --- a/src/signal/sigaction.c +++ b/src/signal/sigaction.c @@ -35,7 +35,7 @@ int __libc_sigaction(int sig, const struct sigaction *sa, struct sigaction *old) int __sigaction(int sig, const struct sigaction *sa, struct sigaction *old) { - if (sig == SIGCANCEL || sig == SIGSYSCALL) { + if (sig-SIGCANCEL < 3U) { errno = EINVAL; return -1; } diff --git a/src/signal/sigprocmask.c b/src/signal/sigprocmask.c index 66b17a42..a272c10d 100644 --- a/src/signal/sigprocmask.c +++ b/src/signal/sigprocmask.c @@ -22,6 +22,7 @@ int __sigprocmask(int how, const sigset_t *set, sigset_t *old) set = &tmp; sigdelset(&tmp, SIGCANCEL); sigdelset(&tmp, SIGSYSCALL); + sigdelset(&tmp, SIGTIMER); } return __libc_sigprocmask(how, set, old); } diff --git a/src/signal/sigrtmin.c b/src/signal/sigrtmin.c index 7ad06d22..d0e769bb 100644 --- a/src/signal/sigrtmin.c +++ b/src/signal/sigrtmin.c @@ -1,4 +1,4 @@ int __libc_current_sigrtmin() { - return 34; + return 35; } -- cgit 1.4.1