diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2019-10-25 12:20:10 -0600 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2019-10-25 12:20:10 -0600 |
commit | a53448846b3d38dedc7ac9457460a3dd02624d38 (patch) | |
tree | 2fee6d50b910d5558df5143509e6b18a3af6bb8e /gtk2_ardour/plugin_scan_dialog.cc | |
parent | c6b8fc78c8de6b516bb7e44d430df1336709682d (diff) |
make comment about discovering plugins in the main thread more accurate
Diffstat (limited to 'gtk2_ardour/plugin_scan_dialog.cc')
-rw-r--r-- | gtk2_ardour/plugin_scan_dialog.cc | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/gtk2_ardour/plugin_scan_dialog.cc b/gtk2_ardour/plugin_scan_dialog.cc index 67d720045f..942eba115a 100644 --- a/gtk2_ardour/plugin_scan_dialog.cc +++ b/gtk2_ardour/plugin_scan_dialog.cc @@ -84,12 +84,17 @@ PluginScanDialog::start () * read this and think about it carefully if you are confused. * * Plugin discovery must take place in the main thread of the - * process. This is not true for all plugin APIs but it is true for VST - * and AU. This means that the PluginManager::refresh() call MUST be - * made from the main thread (typically the GUI thread, but certainly - * the thread running main()). Failure to do this will cause crashes, - * undefined behavior and other undesirable stuff (because plugin APIs - * failed to specify this aspect of the host behavior). + * process. This is not true for all plugin APIs but it is true for + * VST. For AU, although plugins themselves do not care, Apple decided + * that Cocoa must be "invoked" from the main thread, so if the plugin + * decides to show any kind of "registration" GUI, then again, + * discovery must be done in the main thread. + * + * This means that the PluginManager::refresh() call MUST be made from + * the main thread (typically the GUI thread, but certainly the thread + * running main()). Failure to do this will cause crashes, undefined + * behavior and other undesirable stuff (because plugin APIs failed to + * specify this aspect of the host behavior). * * The ::refresh call is likely to be slow, particularly in the case of * VST(2) plugins where we are forced to load the shared object do |