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/Process.cpp | |
parent | 65ab102be3dfde9e3239ac9d08efdbcd7041f261 (diff) | |
download | bcm5719-llvm-04df8ee55eb9a04783bc66c44d17ef36097e5a9b.tar.gz bcm5719-llvm-04df8ee55eb9a04783bc66c44d17ef36097e5a9b.zip |
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/Process.cpp')
-rw-r--r-- | lldb/source/Target/Process.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index 97951f49219..4f4643df892 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -9,6 +9,7 @@ // C Includes // C++ Includes +#include <mutex> // Other libraries and framework includes // Project includes #include "lldb/Target/Process.h" @@ -832,8 +833,11 @@ const ProcessPropertiesSP & Process::GetGlobalProperties() { static ProcessPropertiesSP g_settings_sp; - if (!g_settings_sp) - g_settings_sp.reset (new ProcessProperties (NULL)); + static std::once_flag g_once_flag; + std::call_once(g_once_flag, []() { + if (!g_settings_sp) + g_settings_sp.reset (new ProcessProperties (NULL)); + }); return g_settings_sp; } |