]> git.sesse.net Git - vlc/blobdiff - src/playlist/control.c
Fixed preparsing/art fetching locking.
[vlc] / src / playlist / control.c
index 8aa576029b0fd6ea4d4280ecceb4645dfcc955a8..f340d58bbe283488b0f0b6526acdbe8fde9147dc 100644 (file)
@@ -186,27 +186,27 @@ static int PlaylistVAControl( playlist_t * p_playlist, int i_query, va_list args
  *****************************************************************************/
 /** Enqueue an item for preparsing */
 int playlist_PreparseEnqueue( playlist_t *p_playlist,
-                              input_item_t *p_item )
+                              input_item_t *p_item, bool b_locked )
 {
     playlist_private_t *p_sys = pl_priv(p_playlist);
 
-    PL_LOCK;
+    PL_LOCK_IF( !b_locked );
     if( p_sys->p_preparser )
         playlist_preparser_Push( p_sys->p_preparser, p_item );
-    PL_UNLOCK;
+    PL_UNLOCK_IF( !b_locked );
 
     return VLC_SUCCESS;
 }
 
 int playlist_AskForArtEnqueue( playlist_t *p_playlist,
-                               input_item_t *p_item )
+                               input_item_t *p_item, bool b_locked )
 {
     playlist_private_t *p_sys = pl_priv(p_playlist);
 
-    PL_LOCK;
+    PL_LOCK_IF( !b_locked );
     if( p_sys->p_fetcher )
         playlist_fetcher_Push( p_sys->p_fetcher, p_item );
-    PL_UNLOCK;
+    PL_UNLOCK_IF( !b_locked );
 
     return VLC_SUCCESS;
 }