Core Audio: Try fixing a deadlock when switching devices.

Public issue https://github.com/mackron/miniaudio/issues/344
This commit is contained in:
David Reid
2021-07-17 11:23:01 +10:00
parent af70f1bd5d
commit 07e56c70cf
+6
View File
@@ -26347,6 +26347,12 @@ static void on_start_stop__coreaudio(void* pUserData, AudioUnit audioUnit, Audio
ma_device* pDevice = (ma_device*)pUserData;
MA_ASSERT(pDevice != NULL);
/* Don't do anything if it looks like we're just reinitializing due to a device switch. */
if (((audioUnit == pDevice->coreaudio.audioUnitPlayback) && pDevice->coreaudio.isSwitchingPlaybackDevice) ||
((audioUnit == pDevice->coreaudio.audioUnitCapture) && pDevice->coreaudio.isSwitchingCaptureDevice)) {
return;
}
/*
There's been a report of a deadlock here when triggered by ma_device_uninit(). It looks like
AudioUnitGetProprty (called below) and AudioComponentInstanceDispose (called in ma_device_uninit)