Mercurial > hg > vamp-plugin-sdk
comparison src/vamp-hostsdk/PluginLoader.cpp @ 524:762b79b49c31 c++11-mutex
Don't even ask to unload library if another plugin is loaded from it
author | Chris Cannam |
---|---|
date | Mon, 09 Sep 2019 10:23:37 +0100 |
parents | 628a5b8ff634 |
children |
comparison
equal
deleted
inserted
replaced
523:e0ff22b3c888 | 524:762b79b49c31 |
---|---|
565 | 565 |
566 void | 566 void |
567 PluginLoader::Impl::pluginDeleted(PluginDeletionNotifyAdapter *adapter) | 567 PluginLoader::Impl::pluginDeleted(PluginDeletionNotifyAdapter *adapter) |
568 { | 568 { |
569 void *handle = m_pluginLibraryHandleMap[adapter]; | 569 void *handle = m_pluginLibraryHandleMap[adapter]; |
570 if (handle) Files::unloadLibrary(handle); | 570 if (!handle) return; |
571 | |
571 m_pluginLibraryHandleMap.erase(adapter); | 572 m_pluginLibraryHandleMap.erase(adapter); |
573 | |
574 for (auto h: m_pluginLibraryHandleMap) { | |
575 if (h.second == handle) { | |
576 // still in use | |
577 return; | |
578 } | |
579 } | |
580 | |
581 Files::unloadLibrary(handle); | |
572 } | 582 } |
573 | 583 |
574 PluginLoader::Impl::PluginDeletionNotifyAdapter::PluginDeletionNotifyAdapter(Plugin *plugin, | 584 PluginLoader::Impl::PluginDeletionNotifyAdapter::PluginDeletionNotifyAdapter(Plugin *plugin, |
575 Impl *loader) : | 585 Impl *loader) : |
576 PluginWrapper(plugin), | 586 PluginWrapper(plugin), |