AudioProcessor::get/setStateInformation thread

Do these methods run on the same thread as the processBlock? Should they suspendProcessing if they're time consuming?

They could be run on any thread, so yes, you may want to suspend the processing while they run, depending on what your implementation needs to do.

Following up on this older thread…

In the case of an AAX plug-in, I see setStateInformation being called from the AAXH_HighPriorityAAXHMixerRampeUpdateThread.

In the JuceDemoPlugin (Juce 3.0.1), I see that gain and delay (of type float) are being set here. Both gain and delay are read from the JuceDemoPluginAudioProcessorEditor::timerCallback which will be called on the main thread.

Wouldn’t there be a race condition since float is not an atomic type?

How do other plug-in developers deal with thread safety issues of data being set in setStateInformation and read in other threads?