forked from OSchip/llvm-project
Simplify GetGlobalProperties functions of Thread/Process/Target
Summary: "Initialization of function-local statics is guaranteed to occur only once even when called from multiple threads, and may be more efficient than the equivalent code using std::call_once." <http://en.cppreference.com/w/cpp/thread/call_once> I'd add that it's also more readable. Reviewers: clayborg, zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D17710 llvm-svn: 284601
This commit is contained in:
parent
ce30b1c78e
commit
5f05ea84d5
|
@ -812,11 +812,8 @@ Process::~Process() {
|
|||
const ProcessPropertiesSP &Process::GetGlobalProperties() {
|
||||
// NOTE: intentional leak so we don't crash if global destructor chain gets
|
||||
// called as other threads still use the result of this function
|
||||
static ProcessPropertiesSP *g_settings_sp_ptr = nullptr;
|
||||
static std::once_flag g_once_flag;
|
||||
std::call_once(g_once_flag, []() {
|
||||
g_settings_sp_ptr = new ProcessPropertiesSP(new ProcessProperties(nullptr));
|
||||
});
|
||||
static ProcessPropertiesSP *g_settings_sp_ptr =
|
||||
new ProcessPropertiesSP(new ProcessProperties(nullptr));
|
||||
return *g_settings_sp_ptr;
|
||||
}
|
||||
|
||||
|
|
|
@ -2643,11 +2643,8 @@ void Target::RunStopHooks() {
|
|||
const TargetPropertiesSP &Target::GetGlobalProperties() {
|
||||
// NOTE: intentional leak so we don't crash if global destructor chain gets
|
||||
// called as other threads still use the result of this function
|
||||
static TargetPropertiesSP *g_settings_sp_ptr = nullptr;
|
||||
static std::once_flag g_once_flag;
|
||||
std::call_once(g_once_flag, []() {
|
||||
g_settings_sp_ptr = new TargetPropertiesSP(new TargetProperties(nullptr));
|
||||
});
|
||||
static TargetPropertiesSP *g_settings_sp_ptr =
|
||||
new TargetPropertiesSP(new TargetProperties(nullptr));
|
||||
return *g_settings_sp_ptr;
|
||||
}
|
||||
|
||||
|
|
|
@ -58,11 +58,8 @@ using namespace lldb_private;
|
|||
const ThreadPropertiesSP &Thread::GetGlobalProperties() {
|
||||
// NOTE: intentional leak so we don't crash if global destructor chain gets
|
||||
// called as other threads still use the result of this function
|
||||
static ThreadPropertiesSP *g_settings_sp_ptr = nullptr;
|
||||
static std::once_flag g_once_flag;
|
||||
std::call_once(g_once_flag, []() {
|
||||
g_settings_sp_ptr = new ThreadPropertiesSP(new ThreadProperties(true));
|
||||
});
|
||||
static ThreadPropertiesSP *g_settings_sp_ptr =
|
||||
new ThreadPropertiesSP(new ThreadProperties(true));
|
||||
return *g_settings_sp_ptr;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue