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),