Lines 354-362
check_cancel(struct pthread *curthread, ucontext_t *ucp)
Link Here
|
354 |
* on getting a signal before it agrees to return. |
354 |
* on getting a signal before it agrees to return. |
355 |
*/ |
355 |
*/ |
356 |
if (curthread->cancel_point) { |
356 |
if (curthread->cancel_point) { |
357 |
if (curthread->in_sigsuspend && ucp != NULL) { |
357 |
if (curthread->in_sigsuspend) { |
358 |
SIGADDSET(ucp->uc_sigmask, SIGCANCEL); |
358 |
if (ucp != NULL) { |
359 |
curthread->unblock_sigcancel = 1; |
359 |
SIGADDSET(ucp->uc_sigmask, SIGCANCEL); |
|
|
360 |
curthread->unblock_sigcancel = 1; |
361 |
} |
360 |
_thr_send_sig(curthread, SIGCANCEL); |
362 |
_thr_send_sig(curthread, SIGCANCEL); |
361 |
} else |
363 |
} else |
362 |
thr_wake(curthread->tid); |
364 |
thr_wake(curthread->tid); |