[Lldb-commits] [lldb] r284601 - Simplify GetGlobalProperties functions of Thread/Process/Target
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Wed Oct 19 08:12:46 PDT 2016
Author: labath
Date: Wed Oct 19 10:12:45 2016
New Revision: 284601
URL: http://llvm.org/viewvc/llvm-project?rev=284601&view=rev
Log:
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
Modified:
lldb/trunk/source/Target/Process.cpp
lldb/trunk/source/Target/Target.cpp
lldb/trunk/source/Target/Thread.cpp
Modified: lldb/trunk/source/Target/Process.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Process.cpp?rev=284601&r1=284600&r2=284601&view=diff
==============================================================================
--- lldb/trunk/source/Target/Process.cpp (original)
+++ lldb/trunk/source/Target/Process.cpp Wed Oct 19 10:12:45 2016
@@ -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;
}
Modified: lldb/trunk/source/Target/Target.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Target.cpp?rev=284601&r1=284600&r2=284601&view=diff
==============================================================================
--- lldb/trunk/source/Target/Target.cpp (original)
+++ lldb/trunk/source/Target/Target.cpp Wed Oct 19 10:12:45 2016
@@ -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;
}
Modified: lldb/trunk/source/Target/Thread.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Thread.cpp?rev=284601&r1=284600&r2=284601&view=diff
==============================================================================
--- lldb/trunk/source/Target/Thread.cpp (original)
+++ lldb/trunk/source/Target/Thread.cpp Wed Oct 19 10:12:45 2016
@@ -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;
}
More information about the lldb-commits
mailing list