View | Details | Raw Unified | Return to bug 283101 | Differences between
and this patch

Collapse All | Expand All

(-)b/lib/libthr/thread/thr_sig.c (-3 / +5 lines)
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);

Return to bug 283101