fix clobbering of signal mask when creating thread with sched attributes

this was simply a case of saving the state in the wrong place.
This commit is contained in:
Rich Felker 2013-04-26 17:30:32 -04:00
parent d0ba09837b
commit 082fb4e9bf

View file

@ -197,7 +197,7 @@ int pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict attrp
if (attr._a_sched) { if (attr._a_sched) {
do_sched = new->startlock[0] = 1; do_sched = new->startlock[0] = 1;
__syscall(SYS_rt_sigprocmask, SIG_BLOCK, __syscall(SYS_rt_sigprocmask, SIG_BLOCK,
SIGALL_SET, self->sigmask, _NSIG/8); SIGALL_SET, new->sigmask, _NSIG/8);
} }
new->unblock_cancel = self->cancel; new->unblock_cancel = self->cancel;
new->canary = self->canary; new->canary = self->canary;