Hi,
I have a problem with a VST developed with Juce. When using my plugin (.so, under Linux) in a host, I get lots of assertion failures like this:
~/code/Wolpertinger-juced> grep "JUCE Assertion failure" crashlog.txt | sort | uniq
JUCE Assertion failure in /home/johannes/code/juced/juce/src/juce_appframework/gui/components/juce_Component.cpp, line 1302
JUCE Assertion failure in /home/johannes/code/juced/juce/src/juce_appframework/gui/components/juce_Component.cpp, line 1355
JUCE Assertion failure in /home/johannes/code/juced/juce/src/juce_appframework/gui/components/juce_Component.cpp, line 1797
JUCE Assertion failure in /home/johannes/code/juced/juce/src/juce_appframework/gui/components/juce_Component.cpp, line 221
JUCE Assertion failure in /home/johannes/code/juced/juce/src/juce_appframework/gui/components/juce_Component.cpp, line 642
JUCE Assertion failure in /home/johannes/code/juced/juce/src/juce_appframework/gui/components/juce_Component.cpp, line 991
Later, the host will eventually crash.
This happens in the Debug version. In the Release version it doesn’t seem to happen at the beginning, but after playing with the plugins for some time (half an hour or so) the host still crashes. Both Renoise 2 and Jost crash. It happens both with Juce (the original) and Juced (the modified version by kRAkEn/gORe).
Checking the messages, I found this comment in juce_Component.cpp:
//==============================================================================
void Component::setBounds (int x, int y, int w, int h)
{
// if component methods are being called from threads other than the message
// thread, you'll need to use a MessageManagerLock object to make sure it's thread-safe.
checkMessageManagerIsLocked
...
This confuses me Where should I use a MessageManagerLock? Why are these methods called from a thread other than the message thread? I am not creating any threads in my plugin.
I don’t get these assertion failure messages from the Nekobee plugin, but I don’t find any reference to MessageManagerLock in the Nekobee code. Any ideas what I am doing wrong…? Maybe someone has seen this before and could give me a hint what to do.