Print this page
*** NO COMMENTS ***
@@ -254,18 +254,25 @@
cv_destroy(kcondvar_t *cv)
{
VERIFY(cond_destroy(cv) == 0);
}
-void
-cv_wait(kcondvar_t *cv, kmutex_t *mp)
+int
+cv_wait_sig(kcondvar_t *cv, kmutex_t *mp)
{
ASSERT(mutex_owner(mp) == curthread);
mp->m_owner = NULL;
int ret = cond_wait(cv, &mp->m_lock);
VERIFY(ret == 0 || ret == EINTR);
mp->m_owner = curthread;
+ return (ret == EINTR ? 0 : 1);
+}
+
+void
+cv_wait(kcondvar_t *cv, kmutex_t *mp)
+{
+ (void) cv_wait_sig(cv, mp);
}
clock_t
cv_timedwait(kcondvar_t *cv, kmutex_t *mp, clock_t abstime)
{