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 | |
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;  } | 
