SIGCANCEL
_thr_send_sig(pthread, SIGCANCEL);
SIGDELSET(new_thread->sigmask, SIGCANCEL);
SIGADDSET(set, SIGCANCEL);
if (SIGISMEMBER(*set, SIGCANCEL))
SIGDELSET(*set, SIGCANCEL);
SIGDELSET(ucp->uc_sigmask, SIGCANCEL);
SIGADDSET(ucp->uc_sigmask, SIGCANCEL);
_thr_send_sig(curthread, SIGCANCEL);
if (sig == SIGCANCEL)
__sys_sigaction(SIGCANCEL, &act, NULL);
SIGADDSET(act.sa_mask, SIGCANCEL);
if (!_SIG_VALID(sig) || sig == SIGCANCEL) {
SIGDELSET(newset, SIGCANCEL);
SIGADDSET(newset, SIGCANCEL);
if (!SIGISMEMBER(ucp->uc_sigmask, SIGCANCEL))
SIGDELSET(uc.uc_sigmask, SIGCANCEL);
if (SIGISMEMBER(ucp->uc_sigmask, SIGCANCEL)) {
SIGDELSET(uc.uc_sigmask, SIGCANCEL);
thr_kill(-1, SIGCANCEL);
_thr_send_sig(thread, SIGCANCEL);