I've discovered that in a JUCE VST plugin, if i host another JUCE plugin and open its editor in an external window, a deadlock may or may not occur cause of a MessageManagerLock wait indefinately. This does not occur if i host a plugin not done in JUCE.
juce_VSTPluginFormat.cpp line 1287:
case audioMasterSizeWindow:
if (AudioProcessorEditor* ed = getActiveEditor())
{
#if JUCE_LINUX
const MessageManagerLock mmLock;
#endif
ed->setSize (index, (int) value);
}
return 1;
This creates a deadlock cause dispatcher function in juce_VST_Wrapper.cpp does lock the message thread when opening and closing the plugin gui...
I suspect that that only seems to help, because it'll change the names of the symbols and avoid some clashes, but that's missing the point - you really need to make sure the symbols really aren't visible externally.