• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/minidlna/ffmpeg-2.3.4/compat/

Lines Matching defs:win32_cond

139     win32_cond_t *win32_cond = NULL;
146 win32_cond = av_mallocz(sizeof(win32_cond_t));
147 if (!win32_cond)
149 cond->ptr = win32_cond;
150 win32_cond->semaphore = CreateSemaphore(NULL, 0, 0x7fffffff, NULL);
151 if (!win32_cond->semaphore)
153 win32_cond->waiters_done = CreateEvent(NULL, TRUE, FALSE, NULL);
154 if (!win32_cond->waiters_done)
157 pthread_mutex_init(&win32_cond->mtx_waiter_count, NULL);
158 pthread_mutex_init(&win32_cond->mtx_broadcast, NULL);
164 win32_cond_t *win32_cond = cond->ptr;
170 CloseHandle(win32_cond->semaphore);
171 CloseHandle(win32_cond->waiters_done);
172 pthread_mutex_destroy(&win32_cond->mtx_waiter_count);
173 pthread_mutex_destroy(&win32_cond->mtx_broadcast);
174 av_freep(&win32_cond);
180 win32_cond_t *win32_cond = cond->ptr;
189 pthread_mutex_lock(&win32_cond->mtx_broadcast);
190 pthread_mutex_lock(&win32_cond->mtx_waiter_count);
193 if (win32_cond->waiter_count) {
194 win32_cond->is_broadcast = 1;
199 ReleaseSemaphore(win32_cond->semaphore, win32_cond->waiter_count, NULL);
200 pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
201 WaitForSingleObject(win32_cond->waiters_done, INFINITE);
202 ResetEvent(win32_cond->waiters_done);
203 win32_cond->is_broadcast = 0;
205 pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
206 pthread_mutex_unlock(&win32_cond->mtx_broadcast);
211 win32_cond_t *win32_cond = cond->ptr;
219 pthread_mutex_lock(&win32_cond->mtx_broadcast);
220 pthread_mutex_lock(&win32_cond->mtx_waiter_count);
221 win32_cond->waiter_count++;
222 pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
223 pthread_mutex_unlock(&win32_cond->mtx_broadcast);
227 WaitForSingleObject(win32_cond->semaphore, INFINITE);
229 pthread_mutex_lock(&win32_cond->mtx_waiter_count);
230 win32_cond->waiter_count--;
231 last_waiter = !win32_cond->waiter_count || !win32_cond->is_broadcast;
232 pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
235 SetEvent(win32_cond->waiters_done);
243 win32_cond_t *win32_cond = cond->ptr;
250 pthread_mutex_lock(&win32_cond->mtx_broadcast);
253 pthread_mutex_lock(&win32_cond->mtx_waiter_count);
254 have_waiter = win32_cond->waiter_count;
255 pthread_mutex_unlock(&win32_cond->mtx_waiter_count);
258 ReleaseSemaphore(win32_cond->semaphore, 1, NULL);
259 WaitForSingleObject(win32_cond->waiters_done, INFINITE);
260 ResetEvent(win32_cond->waiters_done);
263 pthread_mutex_unlock(&win32_cond->mtx_broadcast);