mirror of
https://code.videolan.org/videolan/vlc
synced 2024-10-11 06:21:30 +02:00
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 <remi@remlab.net>
This commit is contained in:
parent
c2d2e2bb4d
commit
5d0f05ab72
@ -843,6 +843,7 @@ static void vlm_MediaInstanceDelete( vlm_t *p_vlm, int64_t id, vlm_media_instanc
|
|||||||
if( p_instance->p_input_resource )
|
if( p_instance->p_input_resource )
|
||||||
input_resource_Delete( 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 );
|
vlc_gc_decref( p_instance->p_item );
|
||||||
free( p_instance->psz_name );
|
free( p_instance->psz_name );
|
||||||
free( p_instance );
|
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 )
|
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 );
|
vlm_MediaInstanceDelete( p_vlm, id, p_instance, p_media );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -975,8 +975,6 @@ static int vlm_ControlMediaInstanceStop( vlm_t *p_vlm, int64_t id, const char *p
|
|||||||
if( !p_instance )
|
if( !p_instance )
|
||||||
return VLC_EGENERIC;
|
return VLC_EGENERIC;
|
||||||
|
|
||||||
TAB_REMOVE( p_media->i_instance, p_media->instance, p_instance );
|
|
||||||
|
|
||||||
vlm_MediaInstanceDelete( p_vlm, id, p_instance, p_media );
|
vlm_MediaInstanceDelete( p_vlm, id, p_instance, p_media );
|
||||||
|
|
||||||
return VLC_SUCCESS;
|
return VLC_SUCCESS;
|
||||||
|
Loading…
Reference in New Issue
Block a user