diff --git a/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp b/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp index 88892bb394..dd9344bcf8 100644 --- a/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp +++ b/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp @@ -740,7 +740,7 @@ void AudioThumbnail::setLevels (const MinMaxValue* const* values, int thumbIndex if (numSamplesFinished >= start && end > numSamplesFinished) numSamplesFinished = end; - totalSamples = jmax (numSamplesFinished, totalSamples); + totalSamples = jmax (numSamplesFinished, totalSamples.load()); window->invalidate(); sendChangeMessage(); } @@ -763,7 +763,7 @@ bool AudioThumbnail::isFullyLoaded() const noexcept double AudioThumbnail::getProportionComplete() const noexcept { - return jlimit (0.0, 1.0, numSamplesFinished / (double) jmax ((int64) 1, totalSamples)); + return jlimit (0.0, 1.0, numSamplesFinished / (double) jmax ((int64) 1, totalSamples.load())); } int64 AudioThumbnail::getNumSamplesFinished() const noexcept diff --git a/modules/juce_audio_utils/gui/juce_AudioThumbnail.h b/modules/juce_audio_utils/gui/juce_AudioThumbnail.h index 2496acb1d2..6dc133bb62 100644 --- a/modules/juce_audio_utils/gui/juce_AudioThumbnail.h +++ b/modules/juce_audio_utils/gui/juce_AudioThumbnail.h @@ -206,7 +206,8 @@ private: OwnedArray channels; int32 samplesPerThumbSample = 0; - int64 totalSamples = 0, numSamplesFinished = 0; + std::atomic totalSamples { 0 }; + int64 numSamplesFinished = 0; int32 numChannels = 0; double sampleRate = 0; CriticalSection lock;