More attempts to fix this bug

This commit is contained in:
Lior Halphon 2020-03-06 17:37:04 +02:00
parent c6f9d05124
commit 78b552fe82

View File

@ -318,6 +318,7 @@ static void audioCallback(GB_gameboy_t *gb, GB_sample_t *sample)
if (stopping) { if (stopping) {
memset(buffer, 0, nFrames * sizeof(*buffer)); memset(buffer, 0, nFrames * sizeof(*buffer));
[audioLock unlock]; [audioLock unlock];
return;
} }
if (audioBufferPosition >= nFrames && audioBufferPosition < nFrames + 4800) { if (audioBufferPosition >= nFrames && audioBufferPosition < nFrames + 4800) {
@ -380,7 +381,11 @@ static void audioCallback(GB_gameboy_t *gb, GB_sample_t *sample)
[audioLock signal]; [audioLock signal];
[audioLock unlock]; [audioLock unlock];
running = false; running = false;
while (stopping); while (stopping) {
[audioLock lock];
[audioLock signal];
[audioLock unlock];
}
GB_debugger_set_disabled(&gb, false); GB_debugger_set_disabled(&gb, false);
} }