From b9a13f6d8b6fde0b1347526d6a69d20e4b5e4010 Mon Sep 17 00:00:00 2001 From: Carsten Patzke <carsten.patzke@desy.de> Date: Thu, 17 Sep 2020 12:17:32 +0200 Subject: [PATCH] Fixed dlopen race condition --- common/cpp/src/asapo_fabric/asapo_fabric.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/common/cpp/src/asapo_fabric/asapo_fabric.cpp b/common/cpp/src/asapo_fabric/asapo_fabric.cpp index e4612b7c7..a74a25c93 100644 --- a/common/cpp/src/asapo_fabric/asapo_fabric.cpp +++ b/common/cpp/src/asapo_fabric/asapo_fabric.cpp @@ -3,6 +3,7 @@ #ifdef LIBFABRIC_ENABLED #include <dlfcn.h> +#include <mutex> #include "fabric_factory_impl.h" #include "fabric_function_map.h" #endif @@ -11,6 +12,9 @@ using namespace asapo::fabric; std::unique_ptr<FabricFactory> asapo::fabric::GenerateDefaultFabricFactory() { #ifdef LIBFABRIC_ENABLED + static std::mutex lock; + std::unique_lock<std::mutex> local_lock (lock); + if (gffm().is_init_) { return std::unique_ptr<FabricFactory>(new FabricFactoryImpl()); } -- GitLab