Remove use of synchronization/lock in tools/gn/args
Change-Id: I615c921b78474ba0b93c4b2013bdd762be41f733
Reviewed-on: https://gn-review.googlesource.com/1702
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
diff --git a/tools/gn/args.cc b/tools/gn/args.cc
index 0d6cb9f..637f20a 100644
--- a/tools/gn/args.cc
+++ b/tools/gn/args.cc
@@ -105,14 +105,14 @@
Args::~Args() = default;
void Args::AddArgOverride(const char* name, const Value& value) {
- base::AutoLock lock(lock_);
+ std::lock_guard<std::mutex> lock(lock_);
overrides_[base::StringPiece(name)] = value;
all_overrides_[base::StringPiece(name)] = value;
}
void Args::AddArgOverrides(const Scope::KeyValueMap& overrides) {
- base::AutoLock lock(lock_);
+ std::lock_guard<std::mutex> lock(lock_);
for (const auto& cur_override : overrides) {
overrides_[cur_override.first] = cur_override.second;
@@ -121,13 +121,13 @@
}
void Args::AddDefaultArgOverrides(const Scope::KeyValueMap& overrides) {
- base::AutoLock lock(lock_);
+ std::lock_guard<std::mutex> lock(lock_);
for (const auto& cur_override : overrides)
overrides_[cur_override.first] = cur_override.second;
}
const Value* Args::GetArgOverride(const char* name) const {
- base::AutoLock lock(lock_);
+ std::lock_guard<std::mutex> lock(lock_);
Scope::KeyValueMap::const_iterator found =
all_overrides_.find(base::StringPiece(name));
@@ -138,7 +138,7 @@
void Args::SetupRootScope(Scope* dest,
const Scope::KeyValueMap& toolchain_overrides) const {
- base::AutoLock lock(lock_);
+ std::lock_guard<std::mutex> lock(lock_);
SetSystemVarsLocked(dest);
@@ -155,7 +155,7 @@
bool Args::DeclareArgs(const Scope::KeyValueMap& args,
Scope* scope_to_set,
Err* err) const {
- base::AutoLock lock(lock_);
+ std::lock_guard<std::mutex> lock(lock_);
Scope::KeyValueMap& declared_arguments(
DeclaredArgumentsForToolchainLocked(scope_to_set));
@@ -229,7 +229,7 @@
}
bool Args::VerifyAllOverridesUsed(Err* err) const {
- base::AutoLock lock(lock_);
+ std::lock_guard<std::mutex> lock(lock_);
Scope::KeyValueMap unused_overrides(all_overrides_);
for (const auto& map_pair : declared_arguments_per_toolchain_)
RemoveDeclaredOverrides(map_pair.second, &unused_overrides);
@@ -265,7 +265,7 @@
Args::ValueWithOverrideMap Args::GetAllArguments() const {
ValueWithOverrideMap result;
- base::AutoLock lock(lock_);
+ std::lock_guard<std::mutex> lock(lock_);
// Default values.
for (const auto& map_pair : declared_arguments_per_toolchain_) {
@@ -286,8 +286,6 @@
}
void Args::SetSystemVarsLocked(Scope* dest) const {
- lock_.AssertAcquired();
-
// Host OS.
const char* os = nullptr;
#if defined(OS_WIN)
@@ -374,8 +372,6 @@
void Args::ApplyOverridesLocked(const Scope::KeyValueMap& values,
Scope* scope) const {
- lock_.AssertAcquired();
-
const Scope::KeyValueMap& declared_arguments(
DeclaredArgumentsForToolchainLocked(scope));
@@ -392,18 +388,15 @@
}
void Args::SaveOverrideRecordLocked(const Scope::KeyValueMap& values) const {
- lock_.AssertAcquired();
for (const auto& val : values)
all_overrides_[val.first] = val.second;
}
Scope::KeyValueMap& Args::DeclaredArgumentsForToolchainLocked(
Scope* scope) const {
- lock_.AssertAcquired();
return declared_arguments_per_toolchain_[scope->settings()];
}
Scope::KeyValueMap& Args::OverridesForToolchainLocked(Scope* scope) const {
- lock_.AssertAcquired();
return toolchain_overrides_[scope->settings()];
}
diff --git a/tools/gn/args.h b/tools/gn/args.h
index 5e32733..4a4bc7c 100644
--- a/tools/gn/args.h
+++ b/tools/gn/args.h
@@ -6,11 +6,11 @@
#define TOOLS_GN_ARGS_H_
#include <map>
+#include <mutex>
#include <set>
#include <unordered_map>
#include "base/macros.h"
-#include "base/synchronization/lock.h"
#include "tools/gn/scope.h"
class Err;
@@ -120,7 +120,7 @@
// this is not protected by the lock. It should be set only during init.
Scope::KeyValueMap overrides_;
- mutable base::Lock lock_;
+ mutable std::mutex lock_;
// Maintains a list of all overrides we've ever seen. This is the main
// |overrides_| as well as toolchain overrides. Tracking this allows us to