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