• Erwan Tulou's avatar
    skins2: avoid deadlock when audio-visual is used (accounts for vlc often but... · 64a6e968
    Erwan Tulou authored
    skins2: avoid deadlock when audio-visual is used (accounts for vlc often but not always hanging in this case)
    
    Audio-visual holds the audio_mixer lock during its initialization phase which includes initialization of the vout.
    On the other hand, skins polls every 10ms to check change in the audio volume (this also requires holding the audio_mixer lock)
    This leads to a frequent deadlock at the skins level.
    
    The patch stops polling w.r.t volume and rather reacts on change signalled by the core via a callback. This makes deadlock occurence almost nil.
    
    A long term solution could be that 1/ audio_visual doesn't keep on holding the lock during vout initialisation and 2/ skins stops polling every 10ms for a whole bunch of things (rather use callbacks as qt4 does)
    64a6e968
vlcproc.cpp 21 KB