Lines Matching refs:cond

130 	CONDITION_VARIABLE *cond = mm_malloc(sizeof(CONDITION_VARIABLE));
131 if (!cond)
133 InitializeConditionVariable_fn(cond);
134 return cond;
140 CONDITION_VARIABLE *cond = cond_;
142 mm_free(cond);
146 evthread_win32_condvar_signal(void *cond, int broadcast)
148 CONDITION_VARIABLE *cond = cond_;
150 WakeAllConditionVariable_fn(cond);
152 WakeConditionVariable_fn(cond);
159 CONDITION_VARIABLE *cond = cond_;
168 result = SleepConditionVariableCS_fn(cond, lock, ms);
192 struct evthread_win32_cond *cond;
193 if (!(cond = mm_malloc(sizeof(struct evthread_win32_cond))))
195 if (InitializeCriticalSectionAndSpinCount(&cond->lock, SPIN_COUNT)==0) {
196 mm_free(cond);
199 if ((cond->event = CreateEvent(NULL,TRUE,FALSE,NULL)) == NULL) {
200 DeleteCriticalSection(&cond->lock);
201 mm_free(cond);
204 cond->n_waiting = cond->n_to_wake = cond->generation = 0;
205 return cond;
211 struct evthread_win32_cond *cond = cond_;
212 DeleteCriticalSection(&cond->lock);
213 CloseHandle(cond->event);
214 mm_free(cond);
220 struct evthread_win32_cond *cond = cond_;
221 EnterCriticalSection(&cond->lock);
223 cond->n_to_wake = cond->n_waiting;
225 ++cond->n_to_wake;
226 cond->generation++;
227 SetEvent(cond->event);
228 LeaveCriticalSection(&cond->lock);
235 struct evthread_win32_cond *cond = cond_;
244 EnterCriticalSection(&cond->lock);
245 ++cond->n_waiting;
246 generation_at_start = cond->generation;
247 LeaveCriticalSection(&cond->lock);
254 res = WaitForSingleObject(cond->event, ms);
255 EnterCriticalSection(&cond->lock);
256 if (cond->n_to_wake &&
257 cond->generation != generation_at_start) {
258 --cond->n_to_wake;
259 --cond->n_waiting;
265 --cond->n_waiting;
272 --cond->n_waiting;
280 if (cond->n_to_wake == 0) {
283 ResetEvent(cond->event);
286 LeaveCriticalSection(&cond->lock);
291 EnterCriticalSection(&cond->lock);
292 if (!cond->n_waiting)
293 ResetEvent(cond->event);
294 LeaveCriticalSection(&cond->lock);