[vlc-devel] commit: input: Remove input_DestroyThread() as it is now handled via vlc_object_release(). (Pierre d'Herbemont )
git version control
git at videolan.org
Sun Mar 23 01:16:22 CET 2008
vlc | branch: master | Pierre d'Herbemont <pdherbemont at videolan.org> | Sun Mar 23 01:16:36 2008 +0100| [c90b3db3af8af023ce9d76b989a3000a896c65df]
input: Remove input_DestroyThread() as it is now handled via vlc_object_release().
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c90b3db3af8af023ce9d76b989a3000a896c65df
---
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 4e94fb2..75af0c0 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 36df2ff..f0b33c3 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 afcdfc2..88c7dae 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 2ab3b03..2964d73 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 5f68f39..a21ed92 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 53102b2..afb2104 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 27d1d73..07f0b72 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 )
More information about the vlc-devel
mailing list