From 621400186a49b282197267e588a030b425829a64 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Wed, 18 Mar 2015 23:29:30 +0200 Subject: [PATCH] decoder: remove tautology, add asserts to waiting code --- src/input/decoder.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/input/decoder.c b/src/input/decoder.c index 3c8a32ae58..720df86c03 100644 --- a/src/input/decoder.c +++ b/src/input/decoder.c @@ -516,17 +516,15 @@ void input_DecoderStartWait( decoder_t *p_dec ) { decoder_owner_sys_t *p_owner = p_dec->p_owner; - vlc_mutex_lock( &p_owner->lock ); + assert( !p_owner->b_waiting ); + vlc_mutex_lock( &p_owner->lock ); DecoderFlush( p_dec ); p_owner->b_first = true; p_owner->b_has_data = false; - p_owner->b_waiting = true; - vlc_cond_signal( &p_owner->wait_request ); - vlc_mutex_unlock( &p_owner->lock ); } @@ -534,12 +532,11 @@ void input_DecoderStopWait( decoder_t *p_dec ) { decoder_owner_sys_t *p_owner = p_dec->p_owner; - vlc_mutex_lock( &p_owner->lock ); + assert( p_owner->b_waiting ); + vlc_mutex_lock( &p_owner->lock ); p_owner->b_waiting = false; - vlc_cond_signal( &p_owner->wait_request ); - vlc_mutex_unlock( &p_owner->lock ); } @@ -547,14 +544,14 @@ void input_DecoderWait( decoder_t *p_dec ) { decoder_owner_sys_t *p_owner = p_dec->p_owner; - vlc_mutex_lock( &p_owner->lock ); + assert( p_owner->b_waiting ); - while( p_owner->b_waiting && !p_owner->b_has_data ) + vlc_mutex_lock( &p_owner->lock ); + while( !p_owner->b_has_data ) { block_FifoWake( p_owner->p_fifo ); vlc_cond_wait( &p_owner->wait_acknowledge, &p_owner->lock ); } - vlc_mutex_unlock( &p_owner->lock ); } -- 2.39.2