diff options
| author | Kamil Rytarowski <n54@gmx.com> | 2017-02-06 17:55:02 +0000 |
|---|---|---|
| committer | Kamil Rytarowski <n54@gmx.com> | 2017-02-06 17:55:02 +0000 |
| commit | c5f28e2a05f2ebff09e1cd02a5faa84369c5c655 (patch) | |
| tree | 2b060755745a90c26bf922b6baca662106b581cd /lldb/source/Plugins/Process/Windows | |
| parent | d3464bf9adc283bd5f75756bf99074f195117509 (diff) | |
| download | bcm5719-llvm-c5f28e2a05f2ebff09e1cd02a5faa84369c5c655.tar.gz bcm5719-llvm-c5f28e2a05f2ebff09e1cd02a5faa84369c5c655.zip | |
Switch std::call_once to llvm::call_once
Summary:
The std::call_once implementation in libstdc++ has problems on few systems: NetBSD, OpenBSD and Linux PPC. LLVM ships with a homegrown implementation llvm::call_once to help on these platforms.
This change is required in the NetBSD LLDB port. std::call_once with libstdc++ results with crashing the debugger.
Sponsored by <The NetBSD Foundation>
Reviewers: labath, joerg, emaste, mehdi_amini, clayborg
Reviewed By: labath, clayborg
Subscribers: #lldb
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D29288
llvm-svn: 294202
Diffstat (limited to 'lldb/source/Plugins/Process/Windows')
| -rw-r--r-- | lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp | 5 | ||||
| -rw-r--r-- | lldb/source/Plugins/Process/Windows/Common/ProcessWindowsLog.cpp | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp index 50f787f7849..28068d9a1eb 100644 --- a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp @@ -30,6 +30,7 @@ #include "llvm/Support/ConvertUTF.h" #include "llvm/Support/Format.h" +#include "llvm/Support/Threading.h" #include "llvm/Support/raw_ostream.h" #include "DebuggerThread.h" @@ -102,9 +103,9 @@ ProcessSP ProcessWindows::CreateInstance(lldb::TargetSP target_sp, } void ProcessWindows::Initialize() { - static std::once_flag g_once_flag; + static llvm::once_flag g_once_flag; - std::call_once(g_once_flag, []() { + llvm::call_once(g_once_flag, []() { PluginManager::RegisterPlugin(GetPluginNameStatic(), GetPluginDescriptionStatic(), CreateInstance); }); diff --git a/lldb/source/Plugins/Process/Windows/Common/ProcessWindowsLog.cpp b/lldb/source/Plugins/Process/Windows/Common/ProcessWindowsLog.cpp index 242c1996bdd..3434808e94e 100644 --- a/lldb/source/Plugins/Process/Windows/Common/ProcessWindowsLog.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/ProcessWindowsLog.cpp @@ -14,6 +14,7 @@ #include "lldb/Core/StreamFile.h" #include "lldb/Interpreter/Args.h" #include "llvm/Support/ManagedStatic.h" +#include "llvm/Support/Threading.h" using namespace lldb; using namespace lldb_private; @@ -25,12 +26,12 @@ using namespace lldb_private; static bool g_log_enabled = false; static Log *g_log = nullptr; -static llvm::ManagedStatic<std::once_flag> g_once_flag; +static llvm::ManagedStatic<llvm::once_flag> g_once_flag; void ProcessWindowsLog::Initialize() { static ConstString g_name("windows"); - std::call_once(*g_once_flag, []() { + llvm::call_once(*g_once_flag, []() { Log::Callbacks log_callbacks = {DisableLog, EnableLog, ListLogCategories}; Log::RegisterLogChannel(g_name, log_callbacks); |

