diff src/vamp-hostsdk/PluginLoader.cpp @ 532:569fc23fa37a

Merge from branch c++11-mutex
author Chris Cannam
date Tue, 22 Oct 2019 12:23:53 +0100
parents 762b79b49c31
children
line wrap: on
line diff
--- a/src/vamp-hostsdk/PluginLoader.cpp	Wed Aug 14 14:58:04 2019 +0100
+++ b/src/vamp-hostsdk/PluginLoader.cpp	Tue Oct 22 12:23:53 2019 +0100
@@ -567,8 +567,18 @@
 PluginLoader::Impl::pluginDeleted(PluginDeletionNotifyAdapter *adapter)
 {
     void *handle = m_pluginLibraryHandleMap[adapter];
-    if (handle) Files::unloadLibrary(handle);
+    if (!handle) return;
+
     m_pluginLibraryHandleMap.erase(adapter);
+
+    for (auto h: m_pluginLibraryHandleMap) {
+        if (h.second == handle) {
+            // still in use
+            return;
+        }
+    }
+    
+    Files::unloadLibrary(handle);
 }
 
 PluginLoader::Impl::PluginDeletionNotifyAdapter::PluginDeletionNotifyAdapter(Plugin *plugin,