I’m a host developer and have a case where a plugin is hanging due to a deadlock when it calls restartComponent:
-
The plugin calls restartComponent() from UI thread.
-
Host attempts to suspend the plugin’s processing and waits for the audio thread to complete any in-progress processing.
-
However… the audio thread is currently executing the plugin’s process call but it looks like it’s blocked waiting for a plugin site mutex held by the UI thread
-
The audio thread never completes the suspending of the plugin
-
The host’s restartComponent() implementation on the UI thread waits forever.
ie: a typical deadlock caused by a plugin-side mutex across both the audio and UI threads.
This post sounds like a similar issue and hints this is a plugin issue, but some clarification on responsibilities of the host and plugin here would be great.