From: Sébastien Escudier Date: Thu, 8 Oct 2009 08:05:07 +0000 (+0200) Subject: VLM : Fix a race condition when input event is triggered and vlm_MediaInstanceDelete... X-Git-Tag: 1.1.0-ff~2803 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=5d0f05ab7287efdbd1a3a7c7c3edd7e8b89d9f93;p=vlc VLM : Fix a race condition when input event is triggered and vlm_MediaInstanceDelete is called at the same time. Signed-off-by: Rémi Denis-Courmont --- diff --git a/src/input/vlm.c b/src/input/vlm.c index 9440ac27bc..bc8157fac5 100644 --- a/src/input/vlm.c +++ b/src/input/vlm.c @@ -843,6 +843,7 @@ static void vlm_MediaInstanceDelete( vlm_t *p_vlm, int64_t id, vlm_media_instanc if( p_instance->p_input_resource ) input_resource_Delete( p_instance->p_input_resource ); + TAB_REMOVE( p_media->i_instance, p_media->instance, p_instance ); vlc_gc_decref( p_instance->p_item ); free( p_instance->psz_name ); free( p_instance ); @@ -950,7 +951,6 @@ static int vlm_ControlMediaInstanceStart( vlm_t *p_vlm, int64_t id, const char * if( !p_instance->p_input ) { - TAB_REMOVE( p_media->i_instance, p_media->instance, p_instance ); vlm_MediaInstanceDelete( p_vlm, id, p_instance, p_media ); } else @@ -975,8 +975,6 @@ static int vlm_ControlMediaInstanceStop( vlm_t *p_vlm, int64_t id, const char *p if( !p_instance ) return VLC_EGENERIC; - TAB_REMOVE( p_media->i_instance, p_media->instance, p_instance ); - vlm_MediaInstanceDelete( p_vlm, id, p_instance, p_media ); return VLC_SUCCESS;