Avoid starting multiple threads if there are gratuitous lifecycle events

master
Marc Salem 2012-07-17 13:33:15 -07:00
parent 265d8e9be3
commit b84d760972
1 changed files with 5 additions and 1 deletions

View File

@ -179,7 +179,6 @@ static void start_playback(ALCdevice *pDevice) {
bzero(devState, sizeof(opesles_data_t));
pDevice->ExtraData = devState;
devState->threadShouldRun = 1;
devState->lastBufferEnqueued = -1;
devState->lastBufferMixed = -1;
@ -201,6 +200,11 @@ static void start_playback(ALCdevice *pDevice) {
devState = (opesles_data_t *) pDevice->ExtraData;
}
if (devState->threadShouldRun == 1) {
// Gratuitous resume
return;
}
// start/restart playback thread
devState->threadShouldRun = 1;