vlc | branch: master | Thomas Guillem <[email protected]> | Tue May 28 10:15:10 2019 +0200| [60220ade5614d1b619ef27977f30e87648ade298] | committer: Rémi Denis-Courmont
rc: lock the player only once while processing commands And avoid racy states due to successive lock/unlock Refs #22328 Signed-off-by: Rémi Denis-Courmont <[email protected]> Conflicts: modules/control/rc.c > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=60220ade5614d1b619ef27977f30e87648ade298 --- modules/control/rc.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/modules/control/rc.c b/modules/control/rc.c index 3971916eb1..4ec92712e8 100644 --- a/modules/control/rc.c +++ b/modules/control/rc.c @@ -1569,12 +1569,11 @@ static void *Run( void *data ) b_complete = ReadCommand( p_intf, p_buffer, &i_size ); canc = vlc_savecancel( ); + vlc_player_Lock(player); /* Manage the input part */ if( item == NULL ) { - vlc_player_Lock(player); item = vlc_player_HoldCurrentMedia(player); - vlc_player_Unlock(player); /* New input has been registered */ if( item ) { @@ -1584,7 +1583,6 @@ static void *Run( void *data ) } } - vlc_player_Lock(player); if( !vlc_player_IsStarted( player ) ) { if (item) @@ -1596,13 +1594,10 @@ static void *Run( void *data ) p_sys->last_state = VLC_PLAYER_STATE_STOPPED; msg_rc( STATUS_CHANGE "( stop state: 0 )" ); } - vlc_player_Unlock(player); if( item != NULL ) { - vlc_player_Lock(player); enum vlc_player_state state = vlc_player_GetState(player); - vlc_player_Unlock(player); if (p_sys->last_state != state) { @@ -1627,15 +1622,14 @@ static void *Run( void *data ) if( item && b_showpos ) { - vlc_player_Lock(player); i_newpos = 100 * vlc_player_GetPosition( player ); - vlc_player_Unlock(player); if( i_oldpos != i_newpos ) { i_oldpos = i_newpos; msg_rc( "pos: %d%%", i_newpos ); } } + vlc_player_Unlock(player); /* Is there something to do? */ if( !b_complete ) continue; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
