Actually delete SIGCANCEL mask for suspended thread, so the signal will not

be masked when it is resumed.
This commit is contained in:
David Xu 2008-03-16 03:22:38 +00:00
parent 2b1c6615bc
commit a9a11568ff
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=177231

View File

@ -168,6 +168,7 @@ _pthread_create(pthread_t * thread, const pthread_attr_t * attr,
SIGDELSET(set, SIGTRAP);
__sys_sigprocmask(SIG_SETMASK, &set, &oset);
new_thread->sigmask = oset;
SIGDELSET(new_thread->sigmask, SIGCANCEL);
}
ret = thr_new(&param, sizeof(param));
@ -181,10 +182,8 @@ _pthread_create(pthread_t * thread, const pthread_attr_t * attr,
ret = EAGAIN;
}
if (create_suspended) {
if (create_suspended)
__sys_sigprocmask(SIG_SETMASK, &oset, NULL);
SIGDELSET(oset, SIGCANCEL);
}
if (ret != 0) {
if (!locked)