Home | History | Annotate | Download | only in librumpuser

Lines Matching refs:cv

912 	struct rumpuser_cv *cv;
914 cv = malloc(sizeof(*cv));
915 memset(cv, 0, sizeof(*cv));
916 TAILQ_INIT(&cv->waiters);
917 *cvp = cv;
921 rumpuser_cv_destroy(struct rumpuser_cv *cv)
924 assert(cv->nwaiters == 0);
925 free(cv);
952 rumpuser_cv_wait(struct rumpuser_cv *cv, struct rumpuser_mtx *mtx)
956 cv->nwaiters++;
958 wait(&cv->waiters, 0);
960 cv->nwaiters--;
964 rumpuser_cv_wait_nowrap(struct rumpuser_cv *cv, struct rumpuser_mtx *mtx)
967 cv->nwaiters++;
969 wait(&cv->waiters, 0);
971 cv->nwaiters--;
975 rumpuser_cv_timedwait(struct rumpuser_cv *cv, struct rumpuser_mtx *mtx,
981 cv->nwaiters++;
983 rv = wait(&cv->waiters, sec * 1000 + nsec / (1000*1000));
985 cv->nwaiters--;
991 rumpuser_cv_signal(struct rumpuser_cv *cv)
994 wakeup_one(&cv->waiters);
998 rumpuser_cv_broadcast(struct rumpuser_cv *cv)
1001 wakeup_all(&cv->waiters);
1005 rumpuser_cv_has_waiters(struct rumpuser_cv *cv, int *rvp)
1008 *rvp = cv->nwaiters != 0;