Index: src/log.cc |
diff --git a/src/log.cc b/src/log.cc |
index 39797190712456ceea38f25c9f4ef121f6687107..81b53bcac0969f3667ae956496ad9b516bfd72ee 100644 |
--- a/src/log.cc |
+++ b/src/log.cc |
@@ -35,6 +35,7 @@ |
#include "global-handles.h" |
#include "log.h" |
#include "macro-assembler.h" |
+#include "platform.h" |
#include "runtime-profiler.h" |
#include "serialize.h" |
#include "string-stream.h" |
@@ -1726,13 +1727,14 @@ void Logger::EnableSlidingStateWindow() { |
} |
} |
+// Protects the state below. |
+static LazyMutex active_samplers_mutex = LAZY_MUTEX_INITIALIZER; |
-Mutex* SamplerRegistry::mutex_ = OS::CreateMutex(); |
List<Sampler*>* SamplerRegistry::active_samplers_ = NULL; |
bool SamplerRegistry::IterateActiveSamplers(VisitSampler func, void* param) { |
- ScopedLock lock(mutex_); |
+ ScopedLock lock(active_samplers_mutex.Pointer()); |
for (int i = 0; |
ActiveSamplersExist() && i < active_samplers_->length(); |
++i) { |
@@ -1759,7 +1761,7 @@ SamplerRegistry::State SamplerRegistry::GetState() { |
void SamplerRegistry::AddActiveSampler(Sampler* sampler) { |
ASSERT(sampler->IsActive()); |
- ScopedLock lock(mutex_); |
+ ScopedLock lock(active_samplers_mutex.Pointer()); |
if (active_samplers_ == NULL) { |
active_samplers_ = new List<Sampler*>; |
} else { |
@@ -1771,7 +1773,7 @@ void SamplerRegistry::AddActiveSampler(Sampler* sampler) { |
void SamplerRegistry::RemoveActiveSampler(Sampler* sampler) { |
ASSERT(sampler->IsActive()); |
- ScopedLock lock(mutex_); |
+ ScopedLock lock(active_samplers_mutex.Pointer()); |
ASSERT(active_samplers_ != NULL); |
bool removed = active_samplers_->RemoveElement(sampler); |
ASSERT(removed); |