[vlc-devel] commit: input: end immediately, do not wait for kill event ( Rémi Denis-Courmont )
    git version control 
    git at videolan.org
       
    Mon Jan 12 21:21:50 CET 2009
    
    
  
vlc | branch: master | Rémi Denis-Courmont <rdenis at simphalempin.com> | Mon Jan 12 21:27:17 2009 +0200| [640d0d5b6905ef9fe62acc083cf47ae7a3006874] | committer: Rémi Denis-Courmont 
input: end immediately, do not wait for kill event
Once the input main loop is done (or if input init fails), input
controls are not popped anyway. So the input callbacks are no-ops.
There is no point in postponing cleanup.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=640d0d5b6905ef9fe62acc083cf47ae7a3006874
---
 src/input/input.c |   25 ++-----------------------
 1 files changed, 2 insertions(+), 23 deletions(-)
diff --git a/src/input/input.c b/src/input/input.c
index cbd363a..d33b682 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -68,7 +68,6 @@ static  void *RunAndDestroy  ( vlc_object_t *p_this );
 static input_thread_t * Create  ( vlc_object_t *, input_item_t *,
                                   const char *, bool, input_ressource_t * );
 static  int             Init    ( input_thread_t *p_input );
-static void             WaitDie   ( input_thread_t *p_input );
 static void             End     ( input_thread_t *p_input );
 static void             MainLoop( input_thread_t *p_input );
 
@@ -517,18 +516,14 @@ static void *Run( vlc_object_t *p_this )
 
     if( Init( p_input ) )
     {
-        /* If we failed, wait before we are killed, and exit */
-        WaitDie( p_input );
+        input_ChangeState( p_input, p_input->b_error ? ERROR_S : END_S );
         goto exit;
     }
 
     MainLoop( p_input );
 
-    /* Wait until we are asked to die */
-    if( !p_input->b_die )
-        WaitDie( p_input );
-
     /* Clean up */
+    input_ChangeState( p_input, p_input->b_error ? ERROR_S : END_S );
     End( p_input );
 
 exit:
@@ -1284,22 +1279,6 @@ error:
 }
 
 /*****************************************************************************
- * WaitDie: Wait until we are asked to die.
- *****************************************************************************
- * This function is called when an error occurred during thread main's loop.
- *****************************************************************************/
-static void WaitDie( input_thread_t *p_input )
-{
-    input_ChangeState( p_input, p_input->b_error ? ERROR_S : END_S );
-
-    /* Wait a die order */
-    vlc_object_lock( p_input );
-    while( vlc_object_alive( p_input ) )
-        vlc_object_wait( p_input );
-    vlc_object_unlock( p_input );
-}
-
-/*****************************************************************************
  * End: end the input thread
  *****************************************************************************/
 static void End( input_thread_t * p_input )
    
    
More information about the vlc-devel
mailing list