diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp index 8f0fe3ddd5..7033f6e0e1 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp @@ -851,7 +851,7 @@ void AudioProcessorGraph::topologyChanged() { sendChangeMessage(); - if (isPrepared) + if (isPrepared.get()) triggerAsyncUpdate(); } @@ -1197,6 +1197,7 @@ void AudioProcessorGraph::buildRenderingSequence() void AudioProcessorGraph::handleAsyncUpdate() { buildRenderingSequence(); + isPrepared = true; } //============================================================================== @@ -1209,9 +1210,7 @@ void AudioProcessorGraph::prepareToPlay (double /*sampleRate*/, int estimatedSam renderSequenceDouble->prepareBuffers (estimatedSamplesPerBlock); clearRenderingSequence(); - buildRenderingSequence(); - - isPrepared = true; + triggerAsyncUpdate(); } bool AudioProcessorGraph::supportsDoublePrecisionProcessing() const diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h index 3b23bc5fa1..ea9ad0157e 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h @@ -376,7 +376,7 @@ private: friend class AudioGraphIOProcessor; - bool isPrepared = false; + Atomic isPrepared { false }; void topologyChanged(); void handleAsyncUpdate() override;