| @@ -134,28 +134,29 @@ typedef struct win32_cond_t { | |||||
| volatile int is_broadcast; | volatile int is_broadcast; | ||||
| } win32_cond_t; | } win32_cond_t; | ||||
| static void pthread_cond_init(pthread_cond_t *cond, const void *unused_attr) | |||||
| static int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr) | |||||
| { | { | ||||
| win32_cond_t *win32_cond = NULL; | win32_cond_t *win32_cond = NULL; | ||||
| if (cond_init) { | if (cond_init) { | ||||
| cond_init(cond); | cond_init(cond); | ||||
| return; | |||||
| return 0; | |||||
| } | } | ||||
| /* non native condition variables */ | /* non native condition variables */ | ||||
| win32_cond = av_mallocz(sizeof(win32_cond_t)); | win32_cond = av_mallocz(sizeof(win32_cond_t)); | ||||
| if (!win32_cond) | if (!win32_cond) | ||||
| return; | |||||
| return ENOMEM; | |||||
| cond->ptr = win32_cond; | cond->ptr = win32_cond; | ||||
| win32_cond->semaphore = CreateSemaphore(NULL, 0, 0x7fffffff, NULL); | win32_cond->semaphore = CreateSemaphore(NULL, 0, 0x7fffffff, NULL); | ||||
| if (!win32_cond->semaphore) | if (!win32_cond->semaphore) | ||||
| return; | |||||
| return ENOMEM; | |||||
| win32_cond->waiters_done = CreateEvent(NULL, TRUE, FALSE, NULL); | win32_cond->waiters_done = CreateEvent(NULL, TRUE, FALSE, NULL); | ||||
| if (!win32_cond->waiters_done) | if (!win32_cond->waiters_done) | ||||
| return; | |||||
| return ENOMEM; | |||||
| pthread_mutex_init(&win32_cond->mtx_waiter_count, NULL); | pthread_mutex_init(&win32_cond->mtx_waiter_count, NULL); | ||||
| pthread_mutex_init(&win32_cond->mtx_broadcast, NULL); | pthread_mutex_init(&win32_cond->mtx_broadcast, NULL); | ||||
| return 0; | |||||
| } | } | ||||
| static void pthread_cond_destroy(pthread_cond_t *cond) | static void pthread_cond_destroy(pthread_cond_t *cond) | ||||