Lines Matching refs:cvp

76 #define CV_PSHARED(cvp)	(((cvp)->kcond.c_flags & USYNC_PROCESS_SHARED) != 0)  argument
79 cond_init_body(struct pthread_cond *cvp, const struct pthread_cond_attr *cattr) in cond_init_body() argument
83 cvp->kcond.c_clockid = CLOCK_REALTIME; in cond_init_body()
86 cvp->kcond.c_flags |= USYNC_PROCESS_SHARED; in cond_init_body()
87 cvp->kcond.c_clockid = cattr->c_clockid; in cond_init_body()
94 struct pthread_cond *cvp; in cond_init() local
101 cvp = calloc(1, sizeof(struct pthread_cond)); in cond_init()
102 if (cvp == NULL) in cond_init()
106 cvp = __thr_pshared_offpage(cond, 1); in cond_init()
107 if (cvp == NULL) in cond_init()
114 cond_init_body(cvp, cattr); in cond_init()
115 *cond = pshared ? THR_PSHARED_PTR : cvp; in cond_init()
138 cvp = __thr_pshared_offpage(cond, 0); \
139 if (cvp == NULL) \
141 } else if (__predict_false((cvp = (*cond)) <= THR_COND_DESTROYED)) { \
142 if (cvp == THR_COND_INITIALIZER) { \
147 } else if (cvp == THR_COND_DESTROYED) { \
150 cvp = *cond; \
165 struct pthread_cond *cvp; in _thr_cond_destroy() local
170 cvp = __thr_pshared_offpage(cond, 0); in _thr_cond_destroy()
171 if (cvp != NULL) { in _thr_cond_destroy()
172 if (cvp->kcond.c_has_waiters) in _thr_cond_destroy()
179 } else if ((cvp = *cond) == THR_COND_INITIALIZER) { in _thr_cond_destroy()
181 } else if (cvp == THR_COND_DESTROYED) { in _thr_cond_destroy()
184 cvp = *cond; in _thr_cond_destroy()
185 if (cvp->__has_user_waiters || cvp->kcond.c_has_waiters) in _thr_cond_destroy()
189 free(cvp); in _thr_cond_destroy()
204 cond_wait_kernel(struct pthread_cond *cvp, struct pthread_mutex *mp, in cond_wait_kernel() argument
222 error = _thr_ucond_wait(&cvp->kcond, &mp->m_lock, abstime, in cond_wait_kernel()
276 cond_wait_user(struct pthread_cond *cvp, struct pthread_mutex *mp, in cond_wait_user() argument
290 _sleepq_lock(cvp); in cond_wait_user()
295 cvp->__has_user_waiters = 1; in cond_wait_user()
299 _sleepq_add(cvp, curthread); in cond_wait_user()
302 _sleepq_unlock(cvp); in cond_wait_user()
318 error = _thr_sleep(curthread, cvp->kcond.c_clockid, abstime); in cond_wait_user()
322 _sleepq_lock(cvp); in cond_wait_user()
327 sq = _sleepq_lookup(cvp); in cond_wait_user()
328 cvp->__has_user_waiters = _sleepq_remove(sq, curthread); in cond_wait_user()
329 _sleepq_unlock(cvp); in cond_wait_user()
337 sq = _sleepq_lookup(cvp); in cond_wait_user()
338 cvp->__has_user_waiters = in cond_wait_user()
343 _sleepq_unlock(cvp); in cond_wait_user()
356 struct pthread_cond *cvp; in cond_wait_common() local
375 USYNC_PROCESS_SHARED)) != 0 || CV_PSHARED(cvp)) in cond_wait_common()
376 return (cond_wait_kernel(cvp, mp, abstime, cancel)); in cond_wait_common()
378 return (cond_wait_user(cvp, mp, abstime, cancel)); in cond_wait_common()
426 struct pthread_cond *cvp; in cond_signal_common() local
438 pshared = CV_PSHARED(cvp); in cond_signal_common()
440 _thr_ucond_signal(&cvp->kcond); in cond_signal_common()
442 if (pshared || cvp->__has_user_waiters == 0) in cond_signal_common()
447 _sleepq_lock(cvp); in cond_signal_common()
448 sq = _sleepq_lookup(cvp); in cond_signal_common()
450 _sleepq_unlock(cvp); in cond_signal_common()
456 cvp->__has_user_waiters = _sleepq_remove(sq, td); in cond_signal_common()
469 _sleepq_unlock(cvp); in cond_signal_common()
511 struct pthread_cond *cvp; in cond_broadcast_common() local
521 pshared = CV_PSHARED(cvp); in cond_broadcast_common()
523 _thr_ucond_broadcast(&cvp->kcond); in cond_broadcast_common()
525 if (pshared || cvp->__has_user_waiters == 0) in cond_broadcast_common()
531 _sleepq_lock(cvp); in cond_broadcast_common()
532 sq = _sleepq_lookup(cvp); in cond_broadcast_common()
534 _sleepq_unlock(cvp); in cond_broadcast_common()
538 cvp->__has_user_waiters = 0; in cond_broadcast_common()
539 _sleepq_unlock(cvp); in cond_broadcast_common()