]> git.sesse.net Git - vlc/commitdiff
* fixed deadlock in NextFrame() in aout_pcm.c
authorGildas Bazin <gbazin@videolan.org>
Sat, 18 May 2002 15:51:37 +0000 (15:51 +0000)
committerGildas Bazin <gbazin@videolan.org>
Sat, 18 May 2002 15:51:37 +0000 (15:51 +0000)
src/audio_output/aout_ext-dec.c
src/audio_output/aout_pcm.c

index db84cef5a08264dfeb2d36cde529d8bff230e7b8..69cec970847b351225606276366638ecab04c3cf 100644 (file)
@@ -2,7 +2,7 @@
  * aout_ext-dec.c : exported fifo management functions
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: aout_ext-dec.c,v 1.14 2002/03/26 23:08:40 gbazin Exp $
+ * $Id: aout_ext-dec.c,v 1.15 2002/05/18 15:51:37 gbazin Exp $
  *
  * Authors: Michel Kaempf <maxx@via.ecp.fr>
  *          Cyril Deguet <asmax@via.ecp.fr>
@@ -184,7 +184,9 @@ void aout_DestroyFifo( aout_fifo_t * p_fifo )
 {
     intf_WarnMsg( 2, "aout info: fifo #%i destroyed", p_fifo->i_fifo );
 
+    vlc_mutex_lock( &p_fifo->data_lock );
     p_fifo->b_die = 1;
+    vlc_mutex_unlock( &p_fifo->data_lock );
 }
 
 /*****************************************************************************
index 8773b6cfae798e74906fe97a2b949c13ff466cbd..4283a489d192c0dd8839a00158d8e0d100bb38ba 100644 (file)
@@ -2,7 +2,7 @@
  * aout_pcm.c: PCM audio output functions
  *****************************************************************************
  * Copyright (C) 1999-2002 VideoLAN
- * $Id: aout_pcm.c,v 1.4 2002/04/30 12:56:11 gbazin Exp $
+ * $Id: aout_pcm.c,v 1.5 2002/05/18 15:51:37 gbazin Exp $
  *
  * Authors: Michel Kaempf <maxx@via.ecp.fr>
  *          Cyril Deguet <asmax@via.ecp.fr>
@@ -300,6 +300,11 @@ static int NextFrame( aout_thread_t * p_aout, aout_fifo_t * p_fifo,
 
     /* We take the lock */
     vlc_mutex_lock( &p_fifo->data_lock );
+    if ( p_fifo->b_die )
+    {
+        vlc_mutex_unlock( &p_fifo->data_lock );
+        return( -1 );
+    }
 
     /* Are we looking for a dated start frame ? */
     if ( !p_fifo->b_start_frame )