Scanning plugins timer re-entrancy


I’ve been investigating a heap corruption when scanning certain plugins and it looks like what is happening is that during the initialisation (e.g. VSTPluginInstance::constructEffect), they’re doing something to dispatch the message loop.

This means that the PluginListComponent::timerCallback gets called again even though it is already sitting in it which leads to starting a new scan during construction of the old one and hence the world implodes…

I think a simple re-entrancy check could help here and I don’t think this would affect things if the scan is happening on multiple threads…
juce_scanning.patch (970 Bytes)

Is this a logical addition?