From 932a3b9e915341e581bb1a04a7236ae46e52ce74 Mon Sep 17 00:00:00 2001 From: Kalila L Date: Mon, 14 Sep 2020 02:58:36 -0400 Subject: [PATCH] Update AudioClient.cpp Fix double locking attempt if waitForFinished causes prepareLocalAudioInjectors to be called on this thread. Co-Authored-By: Heather Anderson <1115056+odysseus654@users.noreply.github.com> --- libraries/audio-client/src/AudioClient.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index 4e8c88560b..8d96a2e6b5 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -2072,7 +2072,6 @@ bool AudioClient::switchOutputToAudioDevice(const HifiAudioDeviceInfo outputDevi // NOTE: device start() uses the Qt internal device list Lock lock(_deviceMutex); - Lock localAudioLock(_localAudioMutex); _localSamplesAvailable.exchange(0, std::memory_order_release); //wait on local injectors prep to finish running @@ -2080,6 +2079,8 @@ bool AudioClient::switchOutputToAudioDevice(const HifiAudioDeviceInfo outputDevi _localPrepInjectorFuture.waitForFinished(); } + Lock localAudioLock(_localAudioMutex); + // cleanup any previously initialized device if (_audioOutput) { _audioOutputIODevice.close();