forked from OSchip/llvm-project
Make sure the Target, Process and Thread GetGlobalProperties() static methods are thread safe.
<rdar://problem/22595283> llvm-svn: 262053
This commit is contained in:
parent
65ab102be3
commit
04df8ee55e
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue