• Max Kellermann's avatar
    output_thread: reimplement CANCEL synchronization · 8b0b4ff0
    Max Kellermann authored
    The output thread could hang indefinitely after finishing CANCEL,
    because it could have missed the signal while the output was not
    unlocked in ao_command_finished().
    
    This patch removes the wait() call after CANCEL, and adds the flag
    "allow_play" instead.  While this flag is set, playback is skipped.
    With this flag, there will not be any excess wait() call after the
    pipe has been cleared.
    
    This patch fixes a bug that causes mpd to discontinue playback after
    seeking, due to the race condition described above.
    8b0b4ff0
To find the state of this project's repository at the time of any of these versions, check out the tags.
NEWS 33.9 KB