Lines Matching refs:curthread
209 struct pthread *curthread; in cond_wait_kernel() local
212 curthread = _get_curthread(); in cond_wait_kernel()
213 robust = _mutex_enter_robust(curthread, mp); in cond_wait_kernel()
218 _mutex_leave_robust(curthread, mp); in cond_wait_kernel()
223 _thr_cancel_enter2(curthread, 0); in cond_wait_kernel()
227 _thr_cancel_leave(curthread, 0); in cond_wait_kernel()
245 _mutex_leave_robust(curthread, mp); in cond_wait_kernel()
248 _thr_testcancel(curthread); in cond_wait_kernel()
258 _mutex_leave_robust(curthread, mp); in cond_wait_kernel()
261 _thr_testcancel(curthread); in cond_wait_kernel()
266 _mutex_leave_robust(curthread, mp); in cond_wait_kernel()
281 struct pthread *curthread; in cond_wait_user() local
285 curthread = _get_curthread(); in cond_wait_user()
286 if (curthread->wchan != NULL) in cond_wait_user()
287 PANIC("thread %p was already on queue.", curthread); in cond_wait_user()
290 _thr_testcancel(curthread); in cond_wait_user()
300 curthread->mutex_obj = mp; in cond_wait_user()
301 _sleepq_add(cvp, curthread); in cond_wait_user()
303 _thr_clear_wake(curthread); in cond_wait_user()
312 if (curthread->nwaiter_defer > 0) { in cond_wait_user()
313 _thr_wake_all(curthread->defer_waiters, in cond_wait_user()
314 curthread->nwaiter_defer); in cond_wait_user()
315 curthread->nwaiter_defer = 0; in cond_wait_user()
319 _thr_cancel_enter2(curthread, 0); in cond_wait_user()
320 error = _thr_sleep(curthread, cvp->kcond.c_clockid, abstime); in cond_wait_user()
322 _thr_cancel_leave(curthread, 0); in cond_wait_user()
325 if (curthread->wchan == NULL) { in cond_wait_user()
328 } else if (cancel && SHOULD_CANCEL(curthread)) { in cond_wait_user()
330 cvp->__has_user_waiters = _sleepq_remove(sq, curthread); in cond_wait_user()
332 curthread->mutex_obj = NULL; in cond_wait_user()
334 if (!THR_IN_CRITICAL(curthread)) in cond_wait_user()
341 _sleepq_remove(sq, curthread); in cond_wait_user()
346 curthread->mutex_obj = NULL; in cond_wait_user()
357 struct pthread *curthread = _get_curthread(); in cond_wait_common() local
372 if ((error = _mutex_owned(curthread, mp)) != 0) in cond_wait_common()
375 if (curthread->attr.sched_policy != SCHED_OTHER || in cond_wait_common()
426 struct pthread *curthread = _get_curthread(); in cond_signal_common() local
447 curthread = _get_curthread(); in cond_signal_common()
459 if (PMUTEX_OWNER_ID(mp) == TID(curthread)) { in cond_signal_common()
460 if (curthread->nwaiter_defer >= MAX_DEFER_WAITERS) { in cond_signal_common()
461 _thr_wake_all(curthread->defer_waiters, in cond_signal_common()
462 curthread->nwaiter_defer); in cond_signal_common()
463 curthread->nwaiter_defer = 0; in cond_signal_common()
465 curthread->defer_waiters[curthread->nwaiter_defer++] = in cond_signal_common()
478 struct pthread *curthread; member
488 struct pthread *curthread = ba->curthread; in drop_cb() local
491 if (PMUTEX_OWNER_ID(mp) == TID(curthread)) { in drop_cb()
492 if (curthread->nwaiter_defer >= MAX_DEFER_WAITERS) { in drop_cb()
493 _thr_wake_all(curthread->defer_waiters, in drop_cb()
494 curthread->nwaiter_defer); in drop_cb()
495 curthread->nwaiter_defer = 0; in drop_cb()
497 curthread->defer_waiters[curthread->nwaiter_defer++] = in drop_cb()
530 ba.curthread = _get_curthread(); in cond_broadcast_common()