Skip to content

Commit b2413ea

Browse files
committedNov 12, 2018
[lldb] Fix "code requires global destructor" warning in g_architecture_mutex
Differential Revision: https://reviews.llvm.org/D44060 llvm-svn: 346673
1 parent 63e4ebc commit b2413ea

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed
 

‎lldb/source/Core/PluginManager.cpp

+7-4
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,10 @@ struct ArchitectureInstance {
286286

287287
typedef std::vector<ArchitectureInstance> ArchitectureInstances;
288288

289-
static std::mutex g_architecture_mutex;
289+
static std::mutex &GetArchitectureMutex() {
290+
static std::mutex g_architecture_mutex;
291+
return g_architecture_mutex;
292+
}
290293

291294
static ArchitectureInstances &GetArchitectureInstances() {
292295
static ArchitectureInstances g_instances;
@@ -296,13 +299,13 @@ static ArchitectureInstances &GetArchitectureInstances() {
296299
void PluginManager::RegisterPlugin(const ConstString &name,
297300
llvm::StringRef description,
298301
ArchitectureCreateInstance create_callback) {
299-
std::lock_guard<std::mutex> guard(g_architecture_mutex);
302+
std::lock_guard<std::mutex> guard(GetArchitectureMutex());
300303
GetArchitectureInstances().push_back({name, description, create_callback});
301304
}
302305

303306
void PluginManager::UnregisterPlugin(
304307
ArchitectureCreateInstance create_callback) {
305-
std::lock_guard<std::mutex> guard(g_architecture_mutex);
308+
std::lock_guard<std::mutex> guard(GetArchitectureMutex());
306309
auto &instances = GetArchitectureInstances();
307310

308311
for (auto pos = instances.begin(), end = instances.end(); pos != end; ++pos) {
@@ -316,7 +319,7 @@ void PluginManager::UnregisterPlugin(
316319

317320
std::unique_ptr<Architecture>
318321
PluginManager::CreateArchitectureInstance(const ArchSpec &arch) {
319-
std::lock_guard<std::mutex> guard(g_architecture_mutex);
322+
std::lock_guard<std::mutex> guard(GetArchitectureMutex());
320323
for (const auto &instances : GetArchitectureInstances()) {
321324
if (auto plugin_up = instances.create_callback(arch))
322325
return plugin_up;

0 commit comments

Comments
 (0)
Please sign in to comment.