Commit c90b3db3 authored by Pierre d'Herbemont's avatar Pierre d'Herbemont

input: Remove input_DestroyThread() as it is now handled via vlc_object_release().

parent 05dc64af
...@@ -644,15 +644,18 @@ struct input_thread_t ...@@ -644,15 +644,18 @@ struct input_thread_t
/***************************************************************************** /*****************************************************************************
* Prototypes * Prototypes
*****************************************************************************/ *****************************************************************************/
/* input_CreateThread
* Release the returned input_thread_t using vlc_object_release() */
#define input_CreateThread(a,b) __input_CreateThread(VLC_OBJECT(a),b) #define input_CreateThread(a,b) __input_CreateThread(VLC_OBJECT(a),b)
VLC_EXPORT( input_thread_t *, __input_CreateThread, ( vlc_object_t *, input_item_t * ) ); VLC_EXPORT( input_thread_t *, __input_CreateThread, ( vlc_object_t *, input_item_t * ) );
#define input_Preparse(a,b) __input_Preparse(VLC_OBJECT(a),b) #define input_Preparse(a,b) __input_Preparse(VLC_OBJECT(a),b)
VLC_EXPORT( int, __input_Preparse, ( vlc_object_t *, input_item_t * ) ); VLC_EXPORT( int, __input_Preparse, ( vlc_object_t *, input_item_t * ) );
#define input_Read(a,b,c) __input_Read(VLC_OBJECT(a),b, c) #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( int, __input_Read, ( vlc_object_t *, input_item_t *, vlc_bool_t ) );
VLC_EXPORT( void, input_StopThread, ( input_thread_t * ) ); VLC_EXPORT( void, input_StopThread, ( input_thread_t * ) );
VLC_EXPORT( void, input_DestroyThread, ( input_thread_t * ) );
enum input_query_e enum input_query_e
{ {
......
...@@ -135,7 +135,7 @@ static void Close( vlc_object_t *p_this ) ...@@ -135,7 +135,7 @@ static void Close( vlc_object_t *p_this )
if( p_sd->p_sys->pp_input[i] ) if( p_sd->p_sys->pp_input[i] )
{ {
input_StopThread( 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; p_sd->p_sys->pp_input[i] = NULL;
} }
} }
...@@ -175,7 +175,7 @@ static void Run( services_discovery_t *p_sd ) ...@@ -175,7 +175,7 @@ static void Run( services_discovery_t *p_sd )
|| p_sd->p_sys->pp_input[i]->b_error ) || p_sd->p_sys->pp_input[i]->b_error )
{ {
input_StopThread( 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; p_sd->p_sys->pp_input[i] = NULL;
REMOVE_ELEM( p_sys->pp_input, p_sys->i_input, i ); REMOVE_ELEM( p_sys->pp_input, p_sys->i_input, i );
i--; i--;
......
...@@ -92,12 +92,11 @@ static void release_input_thread( libvlc_media_instance_t *p_mi ) ...@@ -92,12 +92,11 @@ static void release_input_thread( libvlc_media_instance_t *p_mi )
/* We owned this one */ /* We owned this one */
input_StopThread( p_input_thread ); input_StopThread( p_input_thread );
input_DestroyThread( p_input_thread );
var_Destroy( p_input_thread, "drawable" ); 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; p_mi->p_input_thread = NULL;
} }
...@@ -422,7 +421,7 @@ void libvlc_media_instance_destroy( libvlc_media_instance_t *p_mi ) ...@@ -422,7 +421,7 @@ void libvlc_media_instance_destroy( libvlc_media_instance_t *p_mi )
} }
vlc_mutex_destroy( &p_mi->object_lock ); 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 ); libvlc_media_descriptor_release( p_mi->p_md );
......
...@@ -478,22 +478,6 @@ sout_instance_t * input_DetachSout( input_thread_t *p_input ) ...@@ -478,22 +478,6 @@ sout_instance_t * input_DetachSout( input_thread_t *p_input )
return p_input->p->p_sout; 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 * Run: main thread loop
* This is the "normal" thread that spawns the input processing chain, * This is the "normal" thread that spawns the input processing chain,
......
...@@ -2262,7 +2262,7 @@ static int vlm_OnMediaUpdate( vlm_t *p_vlm, vlm_media_sys_t *p_media ) ...@@ -2262,7 +2262,7 @@ static int vlm_OnMediaUpdate( vlm_t *p_vlm, vlm_media_sys_t *p_media )
msleep( 100000 ); msleep( 100000 );
input_StopThread( p_input ); input_StopThread( p_input );
input_DestroyThread( p_input ); vlc_object_release( p_input );
} }
free( psz_output ); free( psz_output );
free( psz_header ); free( psz_header );
...@@ -2499,7 +2499,7 @@ static void vlm_MediaInstanceDelete( vlm_media_instance_sys_t *p_instance ) ...@@ -2499,7 +2499,7 @@ static void vlm_MediaInstanceDelete( vlm_media_instance_sys_t *p_instance )
{ {
input_StopThread( p_instance->p_input ); input_StopThread( p_instance->p_input );
p_instance->p_sout = input_DetachSout( 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 ) if( p_instance->p_sout )
sout_DeleteInstance( 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 * ...@@ -2583,7 +2583,7 @@ static int vlm_ControlMediaInstanceStart( vlm_t *p_vlm, int64_t id, const char *
input_StopThread( p_instance->p_input ); input_StopThread( p_instance->p_input );
p_instance->p_sout = input_DetachSout( 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 ) if( !p_instance->b_sout_keep && p_instance->p_sout )
{ {
sout_DeleteInstance( p_instance->p_sout ); sout_DeleteInstance( p_instance->p_sout );
......
...@@ -127,7 +127,6 @@ input_CurrentMetaFlags ...@@ -127,7 +127,6 @@ input_CurrentMetaFlags
input_DecoderDecode input_DecoderDecode
input_DecoderDelete input_DecoderDelete
input_DecoderNew input_DecoderNew
input_DestroyThread
input_GetItem input_GetItem
input_ItemAddInfo input_ItemAddInfo
input_ItemAddOpt input_ItemAddOpt
......
...@@ -273,11 +273,11 @@ check_input: ...@@ -273,11 +273,11 @@ check_input:
p_playlist->p_input = NULL; p_playlist->p_input = NULL;
/* Release the playlist lock, because we may get stuck /* Release the playlist lock, because we may get stuck
* in input_DestroyThread() for some time. */ * in vlc_object_release() for some time. */
PL_UNLOCK; PL_UNLOCK;
/* Destroy input */ /* Destroy input */
input_DestroyThread( p_input ); vlc_object_release( p_input );
PL_LOCK; PL_LOCK;
...@@ -408,7 +408,7 @@ void playlist_LastLoop( playlist_t *p_playlist ) ...@@ -408,7 +408,7 @@ void playlist_LastLoop( playlist_t *p_playlist )
PL_UNLOCK; PL_UNLOCK;
/* Destroy input */ /* Destroy input */
input_DestroyThread( p_input ); vlc_object_release( p_input );
continue; continue;
} }
else if( p_playlist->p_input->b_die ) else if( p_playlist->p_input->b_die )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment