AudioProcessor::get/setStateInformation thread


#1

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


#2

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.


#3

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?