output_thread: check command before g_cond_wait()
After CANCEL, call g_cond_wait() only if the new command is still NONE. Problem is that ao_command_finished() has to unlock the audio_output object, and in the meantime, the player thread might have submitted a new command.
This commit is contained in:
parent
5555d30bbd
commit
d1742a2330
@ -455,7 +455,8 @@ static gpointer audio_output_task(gpointer arg)
|
|||||||
/* the player thread will now clear our music
|
/* the player thread will now clear our music
|
||||||
pipe - wait for a notify, to give it some
|
pipe - wait for a notify, to give it some
|
||||||
time */
|
time */
|
||||||
g_cond_wait(ao->cond, ao->mutex);
|
if (ao->command == AO_COMMAND_NONE)
|
||||||
|
g_cond_wait(ao->cond, ao->mutex);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case AO_COMMAND_KILL:
|
case AO_COMMAND_KILL:
|
||||||
|
Loading…
Reference in New Issue
Block a user