diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-04-14 12:51:00 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-04-14 12:51:00 -0400 |
commit | 016a5dc1925a66c7d1ffc14b862b1342f399cfda (patch) | |
tree | 3cc1d5e0d087272723a867f8185e49f1f988c721 /src/signal | |
parent | 9beb6330c08839e8bb2ebcd129c97c395d9d327e (diff) | |
download | musl-016a5dc1925a66c7d1ffc14b862b1342f399cfda.tar.gz musl-016a5dc1925a66c7d1ffc14b862b1342f399cfda.tar.xz musl-016a5dc1925a66c7d1ffc14b862b1342f399cfda.zip |
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.
Diffstat (limited to 'src/signal')
-rw-r--r-- | src/signal/sigaction.c | 2 | ||||
-rw-r--r-- | src/signal/sigprocmask.c | 1 | ||||
-rw-r--r-- | src/signal/sigrtmin.c | 2 |
3 files changed, 3 insertions, 2 deletions
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; } |