fix clobbering of signal mask when creating thread with sched attributes
authorRich Felker <dalias@aerifal.cx>
Fri, 26 Apr 2013 21:30:32 +0000 (17:30 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 26 Apr 2013 21:30:32 +0000 (17:30 -0400)
this was simply a case of saving the state in the wrong place.

src/thread/pthread_create.c

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