mirror of
https://github.com/intel/llvm.git
synced 2026-01-14 03:50:17 +08:00
Make sure the Target, Process and Thread GetGlobalProperties() static methods are thread safe.
<rdar://problem/22595283> llvm-svn: 262053
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
// C Includes
|
||||
// C++ Includes
|
||||
#include <mutex>
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Target/Target.h"
|
||||
@@ -2778,10 +2779,11 @@ const TargetPropertiesSP &
|
||||
Target::GetGlobalProperties()
|
||||
{
|
||||
static TargetPropertiesSP g_settings_sp;
|
||||
if (!g_settings_sp)
|
||||
{
|
||||
g_settings_sp.reset(new TargetProperties(nullptr));
|
||||
}
|
||||
static std::once_flag g_once_flag;
|
||||
std::call_once(g_once_flag, []() {
|
||||
if (!g_settings_sp)
|
||||
g_settings_sp.reset(new TargetProperties(nullptr));
|
||||
});
|
||||
return g_settings_sp;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user