fix deadlock at end of song
Now that we do proper locking and signalling instead of continuous polling for IPC, a deadlock was found: at the end of a song, the player thread waits until the main thread sets pc->queueState from PLAYER_QUEUE_DECODE to PLAYER_QUEUE_PLAY. He is never woken up, since syncPlaylistWithQueue() does not activate the notification. I added wakeup_player_nb() to setQueueState(), since the player must be signalled whenever pc->queueState changes. git-svn-id: https://svn.musicpd.org/mpd/trunk@7303 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
parent
9cfb4c0390
commit
f0e28ede4d
@ -281,6 +281,7 @@ void setQueueState(int queueState)
|
||||
PlayerControl *pc = &(getPlayerData()->playerControl);
|
||||
|
||||
pc->queueState = queueState;
|
||||
wakeup_player_nb();
|
||||
}
|
||||
|
||||
void playerQueueLock(void)
|
||||
|
Loading…
Reference in New Issue
Block a user