From ac5797da580b1c09bd3fbdf93f6ed33461ffefcf Mon Sep 17 00:00:00 2001 From: hogliux Date: Wed, 23 Aug 2017 18:22:17 +0100 Subject: [PATCH] Android: Fixed a race condition when switching the buffer size on the Android OpenSL audio device --- modules/juce_audio_devices/native/juce_android_OpenSL.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/juce_audio_devices/native/juce_android_OpenSL.cpp b/modules/juce_audio_devices/native/juce_android_OpenSL.cpp index 248db71a90..d1dd6be331 100644 --- a/modules/juce_audio_devices/native/juce_android_OpenSL.cpp +++ b/modules/juce_audio_devices/native/juce_android_OpenSL.cpp @@ -651,11 +651,16 @@ public: { OpenSLSession::stop(); + while (! guard.compareAndSetBool (1, 0)) + Thread::sleep (1); + if (inputChannels > 0) recorder->setState (false); if (outputChannels > 0) player->setState (false); + + guard.set (0); } bool setAudioPreprocessingEnabled (bool shouldEnable) override