diff options
Diffstat (limited to 'sys/kern/kern_condvar.c')
-rw-r--r-- | sys/kern/kern_condvar.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/kern/kern_condvar.c b/sys/kern/kern_condvar.c index 85a52b1..e7410e6 100644 --- a/sys/kern/kern_condvar.c +++ b/sys/kern/kern_condvar.c @@ -149,7 +149,8 @@ cv_wait_unlock(struct cv *cvp, struct mtx *mp) DROP_GIANT(); mtx_unlock(mp); - sleepq_add(cvp, &mp->mtx_object, cvp->cv_description, SLEEPQ_CONDVAR); + sleepq_add(cvp, &mp->mtx_object, cvp->cv_description, SLEEPQ_CONDVAR, + 0); sleepq_wait(cvp); PICKUP_GIANT(); @@ -197,7 +198,7 @@ cv_wait_sig(struct cv *cvp, struct mtx *mp) mtx_unlock(mp); sleepq_add(cvp, &mp->mtx_object, cvp->cv_description, SLEEPQ_CONDVAR | - SLEEPQ_INTERRUPTIBLE); + SLEEPQ_INTERRUPTIBLE, 0); rval = sleepq_wait_sig(cvp); #ifdef KTRACE @@ -250,7 +251,8 @@ cv_timedwait(struct cv *cvp, struct mtx *mp, int timo) DROP_GIANT(); mtx_unlock(mp); - sleepq_add(cvp, &mp->mtx_object, cvp->cv_description, SLEEPQ_CONDVAR); + sleepq_add(cvp, &mp->mtx_object, cvp->cv_description, SLEEPQ_CONDVAR, + 0); sleepq_set_timeout(cvp, timo); rval = sleepq_timedwait(cvp); @@ -308,7 +310,7 @@ cv_timedwait_sig(struct cv *cvp, struct mtx *mp, int timo) mtx_unlock(mp); sleepq_add(cvp, &mp->mtx_object, cvp->cv_description, SLEEPQ_CONDVAR | - SLEEPQ_INTERRUPTIBLE); + SLEEPQ_INTERRUPTIBLE, 0); sleepq_set_timeout(cvp, timo); rval = sleepq_timedwait_sig(cvp); @@ -337,7 +339,7 @@ cv_signal(struct cv *cvp) sleepq_lock(cvp); if (cvp->cv_waiters > 0) { cvp->cv_waiters--; - sleepq_signal(cvp, SLEEPQ_CONDVAR, -1); + sleepq_signal(cvp, SLEEPQ_CONDVAR, -1, 0); } else sleepq_release(cvp); } @@ -353,7 +355,7 @@ cv_broadcastpri(struct cv *cvp, int pri) sleepq_lock(cvp); if (cvp->cv_waiters > 0) { cvp->cv_waiters = 0; - sleepq_broadcast(cvp, SLEEPQ_CONDVAR, pri); + sleepq_broadcast(cvp, SLEEPQ_CONDVAR, pri, 0); } else sleepq_release(cvp); } |