diff options
author | Greg Clayton <gclayton@apple.com> | 2016-02-26 19:38:18 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2016-02-26 19:38:18 +0000 |
commit | 04df8ee55eb9a04783bc66c44d17ef36097e5a9b (patch) | |
tree | ed47519903737767614f9816f254f6c7352eb6fd /lldb/source/Target/Thread.cpp | |
parent | 65ab102be3dfde9e3239ac9d08efdbcd7041f261 (diff) | |
download | llvm-04df8ee55eb9a04783bc66c44d17ef36097e5a9b.zip llvm-04df8ee55eb9a04783bc66c44d17ef36097e5a9b.tar.gz llvm-04df8ee55eb9a04783bc66c44d17ef36097e5a9b.tar.bz2 |
Make sure the Target, Process and Thread GetGlobalProperties() static methods are thread safe.
<rdar://problem/22595283>
llvm-svn: 262053
Diffstat (limited to 'lldb/source/Target/Thread.cpp')
-rw-r--r-- | lldb/source/Target/Thread.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp index f8daf08..5534ab4 100644 --- a/lldb/source/Target/Thread.cpp +++ b/lldb/source/Target/Thread.cpp @@ -9,6 +9,7 @@ // C Includes // C++ Includes +#include <mutex> // Other libraries and framework includes // Project includes #include "lldb/Breakpoint/BreakpointLocation.h" @@ -59,8 +60,11 @@ const ThreadPropertiesSP & Thread::GetGlobalProperties() { static ThreadPropertiesSP g_settings_sp; - if (!g_settings_sp) - g_settings_sp.reset (new ThreadProperties (true)); + static std::once_flag g_once_flag; + std::call_once(g_once_flag, []() { + if (!g_settings_sp) + g_settings_sp.reset (new ThreadProperties (true)); + }); return g_settings_sp; } |