From 180bbce579192f136a06ec858f6558e951de4f4a Mon Sep 17 00:00:00 2001 From: Dan Raviv Date: Sun, 13 Nov 2022 12:25:21 -0800 Subject: [PATCH] ARAAudioSourceReader: Fix data race Prior to this fix a data race could occur on ARAAudioSourceReader::hostReader between the functions didEnableAudioSourceSamplesAccess() and readSamples(). --- modules/juce_audio_formats/format/juce_ARAAudioReaders.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/juce_audio_formats/format/juce_ARAAudioReaders.cpp b/modules/juce_audio_formats/format/juce_ARAAudioReaders.cpp index d3b0f2056d..a8c974d287 100644 --- a/modules/juce_audio_formats/format/juce_ARAAudioReaders.cpp +++ b/modules/juce_audio_formats/format/juce_ARAAudioReaders.cpp @@ -121,11 +121,11 @@ bool ARAAudioSourceReader::readSamples (int* const* destSamples, int numDestChan const auto destSize = (bitsPerSample / 8) * (size_t) numSamples; const auto bufferOffset = (int) (bitsPerSample / 8) * startOffsetInDestBuffer; - if (isValid() && hostReader != nullptr) + if (isValid()) { const ScopedTryReadLock readLock (lock); - if (readLock.isLocked()) + if (readLock.isLocked() && hostReader != nullptr) { for (size_t i = 0; i < tmpPtrs.size(); ++i) {