From: RĂ©mi Denis-Courmont Date: Sun, 30 Aug 2009 20:21:15 +0000 (+0300) Subject: ALSA: fix signaling race condition X-Git-Tag: 1.1.0-ff~3704 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=8a624dc920f220e2f9e9f496499745d78e1ec07e;p=vlc ALSA: fix signaling race condition start_date must be set with the lock held. Otherwise, the condition statement inside the ALSAThread while() startup loop may fail. Once signaled, start_date belongs to the ALSA thread, so locking is not needed anymore. --- diff --git a/modules/audio_output/alsa.c b/modules/audio_output/alsa.c index a1d770dd3f..1adb6d4025 100644 --- a/modules/audio_output/alsa.c +++ b/modules/audio_output/alsa.c @@ -690,11 +690,11 @@ static void Play( aout_instance_t *p_aout ) p_aout->output.p_sys->b_playing = true; /* get the playing date of the first aout buffer */ + vlc_mutex_lock( &p_aout->output.p_sys->lock ); p_aout->output.p_sys->start_date = aout_FifoFirstDate( p_aout, &p_aout->output.fifo ); /* wake up the audio output thread */ - vlc_mutex_lock( &p_aout->output.p_sys->lock ); vlc_cond_signal( &p_aout->output.p_sys->wait ); vlc_mutex_unlock( &p_aout->output.p_sys->lock ); }