diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c index 632731b80..29b08e732 100644 --- a/src/audio/SDL_audio.c +++ b/src/audio/SDL_audio.c @@ -1051,6 +1051,10 @@ close_audio_device(SDL_AudioDevice * device) { SDL_AtomicSet(&device->shutdown, 1); SDL_AtomicSet(&device->enabled, 0); + + if (device->hidden != NULL) { + current_audio.impl.CloseDevice(device); + } if (device->thread != NULL) { SDL_WaitThread(device->thread, NULL); } @@ -1061,9 +1065,6 @@ close_audio_device(SDL_AudioDevice * device) if (device->convert.needed) { SDL_free(device->convert.buf); } - if (device->hidden != NULL) { - current_audio.impl.CloseDevice(device); - } free_audio_queue(device->buffer_queue_head); free_audio_queue(device->buffer_queue_pool);