From 8a71830d44e1c1f51c6d911e63d4797266588885 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 24 May 2016 21:27:58 +0200 Subject: [PATCH] Prevent some data race conditions (pointed out by Coverity) --- audio/audio_thread_wrapper.c | 2 +- audio/drivers/alsathread.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/audio/audio_thread_wrapper.c b/audio/audio_thread_wrapper.c index 55bb2886f9..f1f307c399 100644 --- a/audio/audio_thread_wrapper.c +++ b/audio/audio_thread_wrapper.c @@ -81,8 +81,8 @@ static void audio_thread_loop(void *data) if (!thr->alive) { scond_signal(thr->cond); - slock_unlock(thr->lock); thr->stopped_ack = true; + slock_unlock(thr->lock); break; } diff --git a/audio/drivers/alsathread.c b/audio/drivers/alsathread.c index f8a2c53e9f..cb9676b4bb 100644 --- a/audio/drivers/alsathread.c +++ b/audio/drivers/alsathread.c @@ -132,7 +132,9 @@ static void alsa_thread_free(void *data) { if (alsa->worker_thread) { + slock_lock(alsa->cond_lock); alsa->thread_dead = true; + slock_unlock(alsa->cond_lock); sthread_join(alsa->worker_thread); } if (alsa->buffer)