Creating SVG drawables async results in juce_assert_message_manager_is_locked

I am creating drawables from svgs in a background thread (using Drawable::createFromSVG), but I get the assert message (juce_assert_message_manager_is_locked) when trying to do so. Can I ignore this, or can I not create drawables from a background thread? I get the feeling that paint is used to create the drawable, but does not actually have to have to message manager locked for it to work correctly as it is not drawing on a screen, am I correct?

Yes, you are correct, you must call Drawable::createFromSVG from the MM thread. I forget the exact reason

Due to design juce::Drawable derives from juce::Component which can only be used in message thread.

Thanks for your replies. I know that drawable derives from juce::Component but when the static function is used, are the parts of the component which should need the message manager locked used? or at least not everything must have the message manager locked, right? The functions can be time consuming, having to have the message manager locked, this will significantly increase loading time. I guess I am trying to figure out what the message manager is for and what it is needed for specifically in this function.

don’t quote me, but I think the consensus is that this is wrong. but, this is currently how it works.

Thanks for the responds btw, I still cannot confirm if this would be necessary for this function specifically. This can impact loading time for our plugin, but for now this seems to be ok. Maybe this would be nice te be able to test this, but I would not know how to do that propperly, as I also don’t really know what it is protecting.