[vlc-devel] [PATCH] Playlists, Dbus
Laurent Aimar
fenrir at via.ecp.fr
Fri Nov 21 08:09:12 CET 2008
On Thu, Nov 20, 2008, Polar Humenn wrote:
> diff --git a/src/playlist/control.c b/src/playlist/control.c
> index 5930b77..7cd1c46 100644
> --- a/src/playlist/control.c
> +++ b/src/playlist/control.c
> @@ -132,7 +132,9 @@ static int PlaylistVAControl( playlist_t * p_playlist, int i_query, va_list args
> if( pl_priv(p_playlist)->p_input )
> {
> val.i_int = PLAYING_S;
> + PL_UNLOCK;
> var_Set( pl_priv(p_playlist)->p_input, "state", val );
> + PL_LOCK;
> break;
> }
> else
> @@ -156,7 +158,9 @@ static int PlaylistVAControl( playlist_t * p_playlist, int i_query, va_list args
> if( pl_priv(p_playlist)->p_input )
> {
> val.i_int = PLAYING_S;
> + PL_UNLOCK;
> var_Set( pl_priv(p_playlist)->p_input, "state", val );
> + PL_LOCK;
> }
> }
> else
> @@ -165,7 +169,9 @@ static int PlaylistVAControl( playlist_t * p_playlist, int i_query, va_list args
> if( pl_priv(p_playlist)->p_input )
> {
> val.i_int = PAUSE_S;
> + PL_UNLOCK;
> var_Set( pl_priv(p_playlist)->p_input, "state", val );
> + PL_LOCK;
> }
> }
> break;
> @@ -517,10 +523,12 @@ int playlist_PlayItem( playlist_t *p_playlist, playlist_item_t *p_item )
> set_current_status_item( p_playlist, p_item );
>
> pl_priv(p_playlist)->status.i_status = PLAYLIST_RUNNING;
> -
> +
> + PL_UNLOCK;
> var_SetInteger( p_playlist, "activity", i_activity +
> DEFAULT_INPUT_ACTIVITY );
> -
> + PL_LOCK;
> +
I really fear that they will create race conditions. You allow someone to lock
the playlist in the middle of a command...
Is the playlist deadlocking itself or a module ?
--
fenrir
More information about the vlc-devel
mailing list