Changeset c7cd0ac4979a796904402309a4978de7416286ec

Show
Ignore:
Timestamp:
06/17/08 12:27:34 (3 months ago)
Author:
Pierre d'Herbemont <pdherbemont@videolan.org>
git-committer:
Pierre d'Herbemont <pdherbemont@videolan.org> 1213698454 +0200
git-parent:

[c351872b520541b73d547bc9003b6c68ddd1b941]

git-author:
Pierre d'Herbemont <pdherbemont@videolan.org> 1213698360 +0200
Message:

input: Attempt to fix variables deadlocks.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/input/input.c

    rbbc37b5 rc7cd0ac  
    15511551 
    15521552                /* Switch to play */ 
    1553                 input_ChangeState( p_input, PLAYING_S); 
     1553                input_ChangeStateWithVarCallback( p_input, PLAYING_S, false ); 
    15541554 
    15551555                /* */ 
     
    15811581 
    15821582                /* Switch to new state */ 
    1583                 input_ChangeState( p_input, state); 
     1583                input_ChangeStateWithVarCallback( p_input, state, false ); 
    15841584 
    15851585                /* */ 
     
    15921592 
    15931593                /* Correct "state" value */ 
    1594                 input_ChangeState( p_input, p_input->i_state ); 
     1594                input_ChangeStateWithVarCallback( p_input, p_input->i_state, false ); 
    15951595            } 
    15961596            else if( val.i_int != PLAYING_S && val.i_int != PAUSE_S ) 
  • src/input/input_internal.h

    r65340ca rc7cd0ac  
    385385void MRLSplit( char *, const char **, const char **, char ** ); 
    386386 
    387 static inline void input_ChangeState( input_thread_t *p_input, int state
     387static inline void input_ChangeStateWithVarCallback( input_thread_t *p_input, int state, bool callback
    388388{ 
    389389    bool changed = (p_input->i_state != state); 
    390     var_SetInteger( p_input, "state", p_input->i_state = state ); 
     390    if( callback ) 
     391        var_SetInteger( p_input, "state", p_input->i_state = state ); 
     392    else 
     393    { 
     394        vlc_value_t val; 
     395        val.i_int = PLAYING_S; 
     396        var_Change( p_input, "state", VLC_VAR_SETVALUE, &val, NULL ); 
     397    } 
    391398    if( changed ) 
    392399    { 
     
    397404    } 
    398405} 
     406 
     407static inline void input_ChangeState( input_thread_t *p_input, int state ) 
     408{ 
     409    input_ChangeStateWithVarCallback( p_input, state, true ); 
     410} 
     411 
    399412 
    400413/* Access */