From c90b3db3af8af023ce9d76b989a3000a896c65df Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Sun, 23 Mar 2008 01:16:36 +0100 Subject: [PATCH] input: Remove input_DestroyThread() as it is now handled via vlc_object_release(). --- include/vlc_input.h | 5 ++++- modules/services_discovery/podcast.c | 4 ++-- src/control/media_instance.c | 7 +++---- src/input/input.c | 16 ---------------- src/input/vlm.c | 6 +++--- src/libvlc.sym | 1 - src/playlist/engine.c | 6 +++--- 7 files changed, 15 insertions(+), 30 deletions(-) diff --git a/include/vlc_input.h b/include/vlc_input.h index 4e94fb2cd5..75af0c0314 100644 --- a/include/vlc_input.h +++ b/include/vlc_input.h @@ -644,15 +644,18 @@ struct input_thread_t /***************************************************************************** * Prototypes *****************************************************************************/ + +/* input_CreateThread + * Release the returned input_thread_t using vlc_object_release() */ #define input_CreateThread(a,b) __input_CreateThread(VLC_OBJECT(a),b) VLC_EXPORT( input_thread_t *, __input_CreateThread, ( vlc_object_t *, input_item_t * ) ); + #define input_Preparse(a,b) __input_Preparse(VLC_OBJECT(a),b) VLC_EXPORT( int, __input_Preparse, ( vlc_object_t *, input_item_t * ) ); #define input_Read(a,b,c) __input_Read(VLC_OBJECT(a),b, c) VLC_EXPORT( int, __input_Read, ( vlc_object_t *, input_item_t *, vlc_bool_t ) ); VLC_EXPORT( void, input_StopThread, ( input_thread_t * ) ); -VLC_EXPORT( void, input_DestroyThread, ( input_thread_t * ) ); enum input_query_e { diff --git a/modules/services_discovery/podcast.c b/modules/services_discovery/podcast.c index 36df2ffb4a..f0b33c331c 100644 --- a/modules/services_discovery/podcast.c +++ b/modules/services_discovery/podcast.c @@ -135,7 +135,7 @@ static void Close( vlc_object_t *p_this ) if( p_sd->p_sys->pp_input[i] ) { input_StopThread( p_sd->p_sys->pp_input[i] ); - input_DestroyThread( p_sd->p_sys->pp_input[i] ); + vlc_object_release( p_sd->p_sys->pp_input[i] ); p_sd->p_sys->pp_input[i] = NULL; } } @@ -175,7 +175,7 @@ static void Run( services_discovery_t *p_sd ) || p_sd->p_sys->pp_input[i]->b_error ) { input_StopThread( p_sd->p_sys->pp_input[i] ); - input_DestroyThread( p_sd->p_sys->pp_input[i] ); + vlc_object_release( p_sd->p_sys->pp_input[i] ); p_sd->p_sys->pp_input[i] = NULL; REMOVE_ELEM( p_sys->pp_input, p_sys->i_input, i ); i--; diff --git a/src/control/media_instance.c b/src/control/media_instance.c index afcdfc2f81..88c7dae353 100644 --- a/src/control/media_instance.c +++ b/src/control/media_instance.c @@ -92,12 +92,11 @@ static void release_input_thread( libvlc_media_instance_t *p_mi ) /* We owned this one */ input_StopThread( p_input_thread ); - input_DestroyThread( p_input_thread ); var_Destroy( p_input_thread, "drawable" ); } - else - vlc_object_release( p_input_thread ); + + vlc_object_release( p_input_thread ); p_mi->p_input_thread = NULL; } @@ -422,7 +421,7 @@ void libvlc_media_instance_destroy( libvlc_media_instance_t *p_mi ) } vlc_mutex_destroy( &p_mi->object_lock ); - input_DestroyThread( p_input_thread ); + vlc_object_release( p_input_thread ); libvlc_media_descriptor_release( p_mi->p_md ); diff --git a/src/input/input.c b/src/input/input.c index 2ab3b0360e..2964d737bb 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -478,22 +478,6 @@ sout_instance_t * input_DetachSout( input_thread_t *p_input ) return p_input->p->p_sout; } -/** - * Clean up a dead input thread - * This function does not return until the thread is effectively cancelled. - * - * \param the input thread to kill - */ -void input_DestroyThread( input_thread_t *p_input ) -{ - /* Join the thread */ - vlc_thread_join( p_input ); - - /* */ - vlc_object_detach( p_input ); - vlc_object_release( p_input ); -} - /***************************************************************************** * Run: main thread loop * This is the "normal" thread that spawns the input processing chain, diff --git a/src/input/vlm.c b/src/input/vlm.c index 5f68f3962f..a21ed92753 100644 --- a/src/input/vlm.c +++ b/src/input/vlm.c @@ -2262,7 +2262,7 @@ static int vlm_OnMediaUpdate( vlm_t *p_vlm, vlm_media_sys_t *p_media ) msleep( 100000 ); input_StopThread( p_input ); - input_DestroyThread( p_input ); + vlc_object_release( p_input ); } free( psz_output ); free( psz_header ); @@ -2499,7 +2499,7 @@ static void vlm_MediaInstanceDelete( vlm_media_instance_sys_t *p_instance ) { input_StopThread( p_instance->p_input ); p_instance->p_sout = input_DetachSout( p_instance->p_input ); - input_DestroyThread( p_instance->p_input ); + vlc_object_release( p_instance->p_input ); } if( p_instance->p_sout ) sout_DeleteInstance( p_instance->p_sout ); @@ -2583,7 +2583,7 @@ static int vlm_ControlMediaInstanceStart( vlm_t *p_vlm, int64_t id, const char * input_StopThread( p_instance->p_input ); p_instance->p_sout = input_DetachSout( p_instance->p_input ); - input_DestroyThread( p_instance->p_input ); + vlc_object_release( p_instance->p_input ); if( !p_instance->b_sout_keep && p_instance->p_sout ) { sout_DeleteInstance( p_instance->p_sout ); diff --git a/src/libvlc.sym b/src/libvlc.sym index 53102b2917..afb21049de 100644 --- a/src/libvlc.sym +++ b/src/libvlc.sym @@ -127,7 +127,6 @@ input_CurrentMetaFlags input_DecoderDecode input_DecoderDelete input_DecoderNew -input_DestroyThread input_GetItem input_ItemAddInfo input_ItemAddOpt diff --git a/src/playlist/engine.c b/src/playlist/engine.c index 27d1d73eed..07f0b72c4e 100644 --- a/src/playlist/engine.c +++ b/src/playlist/engine.c @@ -273,11 +273,11 @@ check_input: p_playlist->p_input = NULL; /* Release the playlist lock, because we may get stuck - * in input_DestroyThread() for some time. */ + * in vlc_object_release() for some time. */ PL_UNLOCK; /* Destroy input */ - input_DestroyThread( p_input ); + vlc_object_release( p_input ); PL_LOCK; @@ -408,7 +408,7 @@ void playlist_LastLoop( playlist_t *p_playlist ) PL_UNLOCK; /* Destroy input */ - input_DestroyThread( p_input ); + vlc_object_release( p_input ); continue; } else if( p_playlist->p_input->b_die ) -- 2.39.2