Home | History | Annotate | Download | only in pthreads-win32

Lines Matching defs:cv

58       * Uses the following CV elements:
68 pthread_cond_t cv;
76 cv = *cond;
79 * No-op if the CV is static and hasn't been initialised yet.
82 if (cv == PTHREAD_COND_INITIALIZER)
87 if ((result = pthread_mutex_lock (&(cv->mtxUnblockLock))) != 0)
92 if (0 != cv->nWaitersToUnblock)
94 if (0 == cv->nWaitersBlocked)
96 return pthread_mutex_unlock (&(cv->mtxUnblockLock));
100 cv->nWaitersToUnblock += (nSignalsToIssue = cv->nWaitersBlocked);
101 cv->nWaitersBlocked = 0;
106 cv->nWaitersToUnblock++;
107 cv->nWaitersBlocked--;
110 else if (cv->nWaitersBlocked > cv->nWaitersGone)
113 if (ptw32_semwait (&(cv->semBlockLock)) != 0)
116 (void) pthread_mutex_unlock (&(cv->mtxUnblockLock));
119 if (0 != cv->nWaitersGone)
121 cv->nWaitersBlocked -= cv->nWaitersGone;
122 cv->nWaitersGone = 0;
126 nSignalsToIssue = cv->nWaitersToUnblock = cv->nWaitersBlocked;
127 cv->nWaitersBlocked = 0;
131 nSignalsToIssue = cv->nWaitersToUnblock = 1;
132 cv->nWaitersBlocked--;
137 return pthread_mutex_unlock (&(cv->mtxUnblockLock));
140 if ((result = pthread_mutex_unlock (&(cv->mtxUnblockLock))) == 0)
142 if (sem_post_multiple (&(cv->semBlockQueue), nSignalsToIssue) != 0)