I have implemented a VST/AU host in our program, a juce technology that in itself works well, but I’m
thinking that many plug-ins by themselves could crash and burn upon enumeration, for whatever reason.
Am I overly pessimistic that enumeration of plug-ins may crash my app? Should I instead start a second
process in which to scan all the system plug-ins? I really wish to keep the scanning within the app itself
but I have too many bad memories of poorly behaved 3:rd party plug-ins…
No, in fact you should expect at least one or more plugins to crash on enumeration. That’s what the “dead man’s pedal file” is for in the plugin enumeration API.
And never forget. Always code as defensively as possible around entry points to unknown, 3rd party code. One piece of DAW software (can’t remember which) goes as far as to run plugins in a separate process to keep the main app from being taken down. I don’t suggest this unless you work for a well financed company.
Vinn, I agree on all accounts. Mostly, I wanted confirmation.
A previous version of our software that was built on wxWidgets had a system (built by me) that works pretty much the same way juce is doing it now. I always thought crashing plug-ins was a pain but quite frankly; if the user install such plug-ins… though luck. Well written products doesn’t crash that often. (Don’t get me wrong on that last sentence!)