]> git.sesse.net Git - vlc/commitdiff
Fix potential deadlock when changing audio channels (fixes #2240)
authorRémi Denis-Courmont <remi@remlab.net>
Sun, 29 Nov 2009 11:16:51 +0000 (13:16 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Sun, 29 Nov 2009 11:17:46 +0000 (13:17 +0200)
src/audio_output/intf.c

index 1e0d8b9315f673120112fee83740cc5d035b452a..3476ad3ce89ad63be192d00f7e923e45ab37e0c6 100644 (file)
@@ -286,15 +286,16 @@ static int aout_Restart( aout_instance_t * p_aout )
         return -1;
     }
 
-    /* Lock all inputs. */
-    aout_lock_input_fifos( p_aout );
-
     for ( i = 0; i < p_aout->i_nb_inputs; i++ )
     {
         aout_lock_input( p_aout, p_aout->pp_inputs[i] );
+        aout_lock_input_fifos( p_aout );
         aout_InputDelete( p_aout, p_aout->pp_inputs[i] );
+        aout_unlock_input_fifos( p_aout );
     }
 
+    /* Lock all inputs. */
+    aout_lock_input_fifos( p_aout );
     aout_MixerDelete( p_aout );
 
     /* Re-open the output plug-in. */