| Index: src/cpu-profiler.cc
|
| diff --git a/src/cpu-profiler.cc b/src/cpu-profiler.cc
|
| index 68a565c73a2ffa4469948a1aa36b52e565f6947a..8bd3e4d8289832f8dc837c023e34d64f049ee47b 100644
|
| --- a/src/cpu-profiler.cc
|
| +++ b/src/cpu-profiler.cc
|
| @@ -20,17 +20,16 @@ namespace internal {
|
| static const int kProfilerStackSize = 64 * KB;
|
|
|
|
|
| -ProfilerEventsProcessor::ProfilerEventsProcessor(
|
| - ProfileGenerator* generator,
|
| - Sampler* sampler,
|
| - base::TimeDelta period)
|
| +ProfilerEventsProcessor::ProfilerEventsProcessor(ProfileGenerator* generator,
|
| + Sampler* sampler,
|
| + base::TimeDelta period)
|
| : Thread(Thread::Options("v8:ProfEvntProc", kProfilerStackSize)),
|
| generator_(generator),
|
| sampler_(sampler),
|
| - running_(true),
|
| + running_(1),
|
| period_(period),
|
| - last_code_event_id_(0), last_processed_code_event_id_(0) {
|
| -}
|
| + last_code_event_id_(0),
|
| + last_processed_code_event_id_(0) {}
|
|
|
|
|
| void ProfilerEventsProcessor::Enqueue(const CodeEventsContainer& event) {
|
| @@ -55,8 +54,7 @@ void ProfilerEventsProcessor::AddCurrentStack(Isolate* isolate) {
|
|
|
|
|
| void ProfilerEventsProcessor::StopSynchronously() {
|
| - if (!running_) return;
|
| - running_ = false;
|
| + if (!base::NoBarrier_AtomicExchange(&running_, 0)) return;
|
| Join();
|
| }
|
|
|
| @@ -107,7 +105,7 @@ ProfilerEventsProcessor::SampleProcessingResult
|
|
|
|
|
| void ProfilerEventsProcessor::Run() {
|
| - while (running_) {
|
| + while (!!base::NoBarrier_Load(&running_)) {
|
| base::ElapsedTimer timer;
|
| timer.Start();
|
| // Keep processing existing events until we need to do next sample.
|
|
|