Lines Matching refs:cvp

64 #define CV_PSHARED(cvp)	(((cvp)->__flags & USYNC_PROCESS_SHARED) != 0)
69 struct pthread_cond *cvp;
72 if ((cvp = (pthread_cond_t)
80 cvp->__clock_id = CLOCK_REALTIME;
83 cvp->__flags |= USYNC_PROCESS_SHARED;
84 cvp->__clock_id = (*cond_attr)->c_clockid;
86 *cond = cvp;
109 if (__predict_false((cvp = (*cond)) <= THR_COND_DESTROYED)) { \
110 if (cvp == THR_COND_INITIALIZER) { \
115 } else if (cvp == THR_COND_DESTROYED) { \
118 cvp = *cond; \
132 struct pthread_cond *cvp;
135 if ((cvp = *cond) == THR_COND_INITIALIZER)
137 else if (cvp == THR_COND_DESTROYED)
140 cvp = *cond;
147 free(cvp);
161 cond_wait_kernel(struct pthread_cond *cvp, struct pthread_mutex *mp,
174 error = _thr_ucond_wait((struct ucond *)&cvp->__has_kern_waiters,
179 error = _thr_ucond_wait((struct ucond *)&cvp->__has_kern_waiters,
213 cond_wait_user(struct pthread_cond *cvp, struct pthread_mutex *mp,
228 _sleepq_lock(cvp);
233 cvp->__has_user_waiters = 1;
237 _sleepq_add(cvp, curthread);
240 _sleepq_unlock(cvp);
255 error = _thr_sleep(curthread, cvp->__clock_id, abstime);
258 error = _thr_sleep(curthread, cvp->__clock_id, abstime);
261 _sleepq_lock(cvp);
266 sq = _sleepq_lookup(cvp);
267 cvp->__has_user_waiters =
269 _sleepq_unlock(cvp);
277 sq = _sleepq_lookup(cvp);
278 cvp->__has_user_waiters =
283 _sleepq_unlock(cvp);
294 struct pthread_cond *cvp;
308 (cvp->__flags & USYNC_PROCESS_SHARED) != 0)
309 return cond_wait_kernel(cvp, mp, abstime, cancel);
311 return cond_wait_user(cvp, mp, abstime, cancel);
357 struct pthread_cond *cvp;
369 pshared = CV_PSHARED(cvp);
371 _thr_ucond_signal((struct ucond *)&cvp->__has_kern_waiters);
373 if (pshared || cvp->__has_user_waiters == 0)
378 _sleepq_lock(cvp);
379 sq = _sleepq_lookup(cvp);
381 _sleepq_unlock(cvp);
387 cvp->__has_user_waiters = _sleepq_remove(sq, td);
400 _sleepq_unlock(cvp);
442 struct pthread_cond *cvp;
452 pshared = CV_PSHARED(cvp);
454 _thr_ucond_broadcast((struct ucond *)&cvp->__has_kern_waiters);
456 if (pshared || cvp->__has_user_waiters == 0)
462 _sleepq_lock(cvp);
463 sq = _sleepq_lookup(cvp);
465 _sleepq_unlock(cvp);
469 cvp->__has_user_waiters = 0;
470 _sleepq_unlock(cvp);