mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 00:31:14 +00:00
Plugin manager: extent lifetime of DLLs
This commit is contained in:
parent
46014118f0
commit
5788daa410
|
@ -28,6 +28,8 @@ using boost::optional;
|
||||||
|
|
||||||
const std::string fair::mq::PluginManager::fgkLibPrefix = "FairMQPlugin_";
|
const std::string fair::mq::PluginManager::fgkLibPrefix = "FairMQPlugin_";
|
||||||
|
|
||||||
|
std::vector<boost::dll::shared_library> fair::mq::PluginManager::fgDLLKeepAlive = std::vector<boost::dll::shared_library>();
|
||||||
|
|
||||||
fair::mq::PluginManager::PluginManager()
|
fair::mq::PluginManager::PluginManager()
|
||||||
: fSearchPaths{}
|
: fSearchPaths{}
|
||||||
, fPluginFactories()
|
, fPluginFactories()
|
||||||
|
|
|
@ -97,6 +97,7 @@ class PluginManager
|
||||||
using fair::mq::tools::ToString;
|
using fair::mq::tools::ToString;
|
||||||
|
|
||||||
auto lib = shared_library{std::forward<Args>(args)...};
|
auto lib = shared_library{std::forward<Args>(args)...};
|
||||||
|
fgDLLKeepAlive.push_back(lib);
|
||||||
|
|
||||||
fPluginFactories[pluginName] = import_alias<PluginFactory>(
|
fPluginFactories[pluginName] = import_alias<PluginFactory>(
|
||||||
shared_library{lib},
|
shared_library{lib},
|
||||||
|
@ -117,6 +118,7 @@ class PluginManager
|
||||||
|
|
||||||
static const std::string fgkLibPrefix;
|
static const std::string fgkLibPrefix;
|
||||||
std::vector<boost::filesystem::path> fSearchPaths;
|
std::vector<boost::filesystem::path> fSearchPaths;
|
||||||
|
static std::vector<boost::dll::shared_library> fgDLLKeepAlive;
|
||||||
std::map<std::string, std::function<PluginFactory>> fPluginFactories;
|
std::map<std::string, std::function<PluginFactory>> fPluginFactories;
|
||||||
std::unique_ptr<PluginServices> fPluginServices;
|
std::unique_ptr<PluginServices> fPluginServices;
|
||||||
std::map<std::string, std::unique_ptr<Plugin>> fPlugins;
|
std::map<std::string, std::unique_ptr<Plugin>> fPlugins;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user