From 87488f13387adb52e6430972c5de165e41d4db75 Mon Sep 17 00:00:00 2001 From: Sergey Grigoryants Date: Tue, 8 Sep 2020 19:31:58 +0300 Subject: [PATCH] Fix data race in GetInstance --- src/Singleton/Conceptual/ThreadSafe/main.cc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/Singleton/Conceptual/ThreadSafe/main.cc b/src/Singleton/Conceptual/ThreadSafe/main.cc index 1307cd4..c0b5a1f 100644 --- a/src/Singleton/Conceptual/ThreadSafe/main.cc +++ b/src/Singleton/Conceptual/ThreadSafe/main.cc @@ -112,13 +112,10 @@ std::mutex Singleton::mutex_; */ Singleton *Singleton::GetInstance(const std::string& value) { + std::lock_guard lock(mutex_); if (pinstance_ == nullptr) { - std::lock_guard lock(mutex_); - if (pinstance_ == nullptr) - { - pinstance_ = new Singleton(value); - } + pinstance_ = new Singleton(value); } return pinstance_; }