pthread: Change a signal to a broadcast as multiple threads

have been seen waiting and deadlocking on it in bug125.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2012-01-22 21:13:10 +01:00
parent 2bb7396bfd
commit 199d4478de

View File

@ -960,7 +960,7 @@ int ff_thread_get_buffer(AVCodecContext *avctx, AVFrame *f)
p->requested_frame = f; p->requested_frame = f;
p->state = STATE_GET_BUFFER; p->state = STATE_GET_BUFFER;
pthread_mutex_lock(&p->progress_mutex); pthread_mutex_lock(&p->progress_mutex);
pthread_cond_signal(&p->progress_cond); pthread_cond_broadcast(&p->progress_cond);
while (p->state != STATE_SETTING_UP) while (p->state != STATE_SETTING_UP)
pthread_cond_wait(&p->progress_cond, &p->progress_mutex); pthread_cond_wait(&p->progress_cond, &p->progress_mutex);