Lines Matching refs:condition
123 umtx_condBroadcast(UConditionVar *condition) { in umtx_condBroadcast() argument
127 if (condition->fWaitCount == 0) { in umtx_condBroadcast()
130 ResetEvent(condition->fExitGate); in umtx_condBroadcast()
131 SetEvent(condition->fEntryGate); in umtx_condBroadcast()
144 umtx_condWait(UConditionVar *condition, UMutex *mutex) { in umtx_condWait() argument
145 if (condition->fEntryGate == NULL) { in umtx_condWait()
150 U_ASSERT(condition->fExitGate == NULL); in umtx_condWait()
151 condition->fEntryGate = CreateEvent(NULL, // Security Attributes in umtx_condWait()
155 U_ASSERT(condition->fEntryGate != NULL); in umtx_condWait()
156 condition->fExitGate = CreateEvent(NULL, TRUE, TRUE, NULL); in umtx_condWait()
157 U_ASSERT(condition->fExitGate != NULL); in umtx_condWait()
160 condition->fWaitCount++; in umtx_condWait()
162 WaitForSingleObject(condition->fEntryGate, INFINITE); in umtx_condWait()
164 condition->fWaitCount--; in umtx_condWait()
165 if (condition->fWaitCount == 0) { in umtx_condWait()
168 ResetEvent(condition->fEntryGate); in umtx_condWait()
169 SetEvent(condition->fExitGate); in umtx_condWait()
172 WaitForSingleObject(condition->fExitGate, INFINITE); in umtx_condWait()