Avoid starting multiple threads if there are gratuitous lifecycle events
parent
265d8e9be3
commit
b84d760972
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue