]> git.sesse.net Git - vlc/commitdiff
input: Remove input_DestroyThread() as it is now handled via vlc_object_release().
authorPierre d'Herbemont <pdherbemont@videolan.org>
Sun, 23 Mar 2008 00:16:36 +0000 (01:16 +0100)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Sun, 23 Mar 2008 00:16:36 +0000 (01:16 +0100)
include/vlc_input.h
modules/services_discovery/podcast.c
src/control/media_instance.c
src/input/input.c
src/input/vlm.c
src/libvlc.sym
src/playlist/engine.c

index 4e94fb2cd590828da4034088a3d598e7314dff26..75af0c0314d3d335460970dec7e9329bc5b738a0 100644 (file)
@@ -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
 {
index 36df2ffb4a5e1fd3fad39ca4ddc86c525ce272b2..f0b33c331ca6cf064f57d15ce24db0402c40723e 100644 (file)
@@ -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--;
index afcdfc2f8187947f65243b0cec11fab0fb067c0c..88c7dae3535eb4a385f5bfeb787782bcfd74b8c6 100644 (file)
@@ -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 );
 
index 2ab3b0360e5037e90a04b59aaa425c3ed8f6bdad..2964d737bb5a77e76904fcd5baa94267757e617f 100644 (file)
@@ -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,
index 5f68f3962f94f78b2873d946b4cb75a3c6278e17..a21ed9275377452e78919e3f3aba3186cfad588f 100644 (file)
@@ -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 );
index 53102b2917ceb1fc735c44a282b7204e09f04c9d..afb21049dea861408fb87ffdc81acea5b05c3a87 100644 (file)
@@ -127,7 +127,6 @@ input_CurrentMetaFlags
 input_DecoderDecode
 input_DecoderDelete
 input_DecoderNew
-input_DestroyThread
 input_GetItem
 input_ItemAddInfo
 input_ItemAddOpt
index 27d1d73eedde1c359f5ca0101511464b9ad10cf0..07f0b72c4e56c9c3f0c084902229bf1313d09b1c 100644 (file)
@@ -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 )