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

Collapse All | Expand All

(-)b/lib/libthr/thread/thr_resume_np.c (-1 / +1 lines)
Lines 91-97 static void Link Here
91
resume_common(struct pthread *thread)
91
resume_common(struct pthread *thread)
92
{
92
{
93
	/* Clear the suspend flag: */
93
	/* Clear the suspend flag: */
94
	thread->flags &= ~THR_FLAGS_NEED_SUSPEND;
94
	thread->flags &= ~(THR_FLAGS_NEED_SUSPEND | THR_FLAGS_SUSPENDED);
95
	thread->cycle++;
95
	thread->cycle++;
96
	_thr_umtx_wake(&thread->cycle, 1, 0);
96
	_thr_umtx_wake(&thread->cycle, 1, 0);
97
}
97
}
(-)b/lib/libthr/thread/thr_sig.c (-1 lines)
Lines 392-398 check_suspend(struct pthread *curthread) Link Here
392
		THR_UMUTEX_UNLOCK(curthread, &(curthread)->lock);
392
		THR_UMUTEX_UNLOCK(curthread, &(curthread)->lock);
393
		_thr_umtx_wait_uint(&curthread->cycle, cycle, NULL, 0);
393
		_thr_umtx_wait_uint(&curthread->cycle, cycle, NULL, 0);
394
		THR_UMUTEX_LOCK(curthread, &(curthread)->lock);
394
		THR_UMUTEX_LOCK(curthread, &(curthread)->lock);
395
		curthread->flags &= ~THR_FLAGS_SUSPENDED;
396
	}
395
	}
397
	THR_UMUTEX_UNLOCK(curthread, &(curthread)->lock);
396
	THR_UMUTEX_UNLOCK(curthread, &(curthread)->lock);
398
	curthread->critical_count--;
397
	curthread->critical_count--;

Return to bug 209233