DOS: yield audio thread even when the ring buffer has space

This commit is contained in:
x0r
2026-09-10 16:19:40 +02:00
committed by Ryan C. Gordon
parent b88e540783
commit ce85ee87f6

View File

@@ -170,6 +170,10 @@ static bool DOSSOUNDBLASTER_WaitDevice(SDL_AudioDevice *device)
struct SDL_PrivateAudioData *hidden = device->hidden;
const int size = hidden->ring_size;
// Slow mixing can keep the ring below capacity indefinitely. Yield even
// when there is room so the cooperative main thread can process events.
DOS_Yield();
for (;;) {
// Available space = ring_size - (write - read).
// ring_write is ours (audio thread only), ring_read is advanced by