• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/iserver/libav-0.8.8/libavcodec/

Lines Matching defs:win32_cond

128     win32_cond_t *win32_cond = NULL;
135 win32_cond = av_mallocz(sizeof(win32_cond_t));
136 if (!win32_cond)
138 cond->ptr = win32_cond;
139 win32_cond->semaphore = CreateSemaphore(NULL, 0, 0x7fffffff, NULL);
140 if (!win32_cond->semaphore)
142 win32_cond->waiters_done = CreateEvent(NULL, TRUE, FALSE, NULL);
143 if (!win32_cond->waiters_done)
146 pthread_mutex_init(&win32_cond->mtx_waiter_count, NULL);
147 pthread_mutex_init(&win32_cond->mtx_broadcast, NULL);
152 win32_cond_t *win32_cond = cond->ptr;
158 CloseHandle(win32_cond->semaphore);
159 CloseHandle(win32_cond->waiters_done);
160 pthread_mutex_destroy(&win32_cond->mtx_waiter_count);
161 pthread_mutex_destroy(&win32_cond->mtx_broadcast);
162 av_freep(&win32_cond);
168 win32_cond_t *win32_cond = cond->ptr;
177 pthread_mutex_lock(&win32_cond->mtx_broadcast);
178 pthread_mutex_lock(&win32_cond->mtx_waiter_count);
181 if (win32_cond->waiter_count) {
182 win32_cond->is_broadcast = 1;
187 ReleaseSemaphore(win32_cond->semaphore, win32_cond->waiter_count, NULL);
188 pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
189 WaitForSingleObject(win32_cond->waiters_done, INFINITE);
190 ResetEvent(win32_cond->waiters_done);
191 win32_cond->is_broadcast = 0;
193 pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
194 pthread_mutex_unlock(&win32_cond->mtx_broadcast);
199 win32_cond_t *win32_cond = cond->ptr;
207 pthread_mutex_lock(&win32_cond->mtx_broadcast);
208 pthread_mutex_lock(&win32_cond->mtx_waiter_count);
209 win32_cond->waiter_count++;
210 pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
211 pthread_mutex_unlock(&win32_cond->mtx_broadcast);
215 WaitForSingleObject(win32_cond->semaphore, INFINITE);
217 pthread_mutex_lock(&win32_cond->mtx_waiter_count);
218 win32_cond->waiter_count--;
219 last_waiter = !win32_cond->waiter_count || !win32_cond->is_broadcast;
220 pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
223 SetEvent(win32_cond->waiters_done);
231 win32_cond_t *win32_cond = cond->ptr;
238 pthread_mutex_lock(&win32_cond->mtx_broadcast);
241 pthread_mutex_lock(&win32_cond->mtx_waiter_count);
242 have_waiter = win32_cond->waiter_count;
243 pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
246 ReleaseSemaphore(win32_cond->semaphore, 1, NULL);
247 WaitForSingleObject(win32_cond->waiters_done, INFINITE);
248 ResetEvent(win32_cond->waiters_done);
251 pthread_mutex_unlock(&win32_cond->mtx_broadcast);