diff --git a/src/FilterModelConfig6581.cpp b/src/FilterModelConfig6581.cpp index 805a960..f611240 100644 --- a/src/FilterModelConfig6581.cpp +++ b/src/FilterModelConfig6581.cpp @@ -85,16 +85,11 @@ constexpr Spline::Point opamp_voltage[OPAMP_SIZE] = std::unique_ptr FilterModelConfig6581::instance(nullptr); -std::mutex Instance6581_Lock; +std::once_flag flag6581; FilterModelConfig6581* FilterModelConfig6581::getInstance() { - std::lock_guard lock(Instance6581_Lock); - - if (!instance.get()) - { - instance.reset(new FilterModelConfig6581()); - } + std::call_once(flag6581, [](){ instance.reset(new FilterModelConfig6581()); }); return instance.get(); } diff --git a/src/FilterModelConfig8580.cpp b/src/FilterModelConfig8580.cpp index 76cc7e0..1dc4e63 100644 --- a/src/FilterModelConfig8580.cpp +++ b/src/FilterModelConfig8580.cpp @@ -116,16 +116,11 @@ constexpr Spline::Point opamp_voltage[OPAMP_SIZE] = std::unique_ptr FilterModelConfig8580::instance(nullptr); -std::mutex Instance8580_Lock; +std::once_flag flag8580; FilterModelConfig8580* FilterModelConfig8580::getInstance() { - std::lock_guard lock(Instance8580_Lock); - - if (!instance.get()) - { - instance.reset(new FilterModelConfig8580()); - } + std::call_once(flag8580, [](){ instance.reset(new FilterModelConfig8580()); }); return instance.get(); }