Commit 2bb79b23 authored by Michael Niedermayer's avatar Michael Niedermayer

pthread: next try on freeing threads without crashing.

This should fix mingw
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 3d977edb
......@@ -72,6 +72,7 @@ typedef struct PerThreadContext {
struct FrameThreadContext *parent;
pthread_t thread;
int thread_created;
pthread_cond_t input_cond; ///< Used to wait for a new packet from the main thread.
pthread_cond_t progress_cond; ///< Used by child threads to wait for progress to change.
pthread_cond_t output_cond; ///< Used by the main thread to wait for frames to finish.
......@@ -658,8 +659,9 @@ static void frame_thread_free(AVCodecContext *avctx, int thread_count)
pthread_cond_signal(&p->input_cond);
pthread_mutex_unlock(&p->mutex);
if (p->thread)
if (p->thread_created)
pthread_join(p->thread, NULL);
p->thread_created=0;
if (codec->close)
codec->close(p->avctx);
......@@ -763,7 +765,7 @@ static int frame_thread_init(AVCodecContext *avctx)
if (err) goto error;
pthread_create(&p->thread, NULL, frame_worker_thread, p);
p->thread_created= !pthread_create(&p->thread, NULL, frame_worker_thread, p);
}
return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment