Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(197)

Side by Side Diff: base/trace_event/trace_event_synthetic_delay.cc

Issue 1308823002: Move Singleton and related structs to namespace base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add \n Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/singleton.h" 5 #include "base/memory/singleton.h"
6 #include "base/third_party/dynamic_annotations/dynamic_annotations.h" 6 #include "base/third_party/dynamic_annotations/dynamic_annotations.h"
7 #include "base/trace_event/trace_event_synthetic_delay.h" 7 #include "base/trace_event/trace_event_synthetic_delay.h"
8 8
9 namespace { 9 namespace {
10 const int kMaxSyntheticDelays = 32; 10 const int kMaxSyntheticDelays = 32;
(...skipping 11 matching lines...) Expand all
22 22
23 TraceEventSyntheticDelay* GetOrCreateDelay(const char* name); 23 TraceEventSyntheticDelay* GetOrCreateDelay(const char* name);
24 void ResetAllDelays(); 24 void ResetAllDelays();
25 25
26 // TraceEventSyntheticDelayClock implementation. 26 // TraceEventSyntheticDelayClock implementation.
27 base::TimeTicks Now() override; 27 base::TimeTicks Now() override;
28 28
29 private: 29 private:
30 TraceEventSyntheticDelayRegistry(); 30 TraceEventSyntheticDelayRegistry();
31 31
32 friend struct DefaultSingletonTraits<TraceEventSyntheticDelayRegistry>; 32 friend struct base::DefaultSingletonTraits<TraceEventSyntheticDelayRegistry>;
33 33
34 Lock lock_; 34 Lock lock_;
35 TraceEventSyntheticDelay delays_[kMaxSyntheticDelays]; 35 TraceEventSyntheticDelay delays_[kMaxSyntheticDelays];
36 TraceEventSyntheticDelay dummy_delay_; 36 TraceEventSyntheticDelay dummy_delay_;
37 base::subtle::Atomic32 delay_count_; 37 base::subtle::Atomic32 delay_count_;
38 38
39 DISALLOW_COPY_AND_ASSIGN(TraceEventSyntheticDelayRegistry); 39 DISALLOW_COPY_AND_ASSIGN(TraceEventSyntheticDelayRegistry);
40 }; 40 };
41 41
42 TraceEventSyntheticDelay::TraceEventSyntheticDelay() 42 TraceEventSyntheticDelay::TraceEventSyntheticDelay()
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 142
143 void TraceEventSyntheticDelay::ApplyDelay(base::TimeTicks end_time) { 143 void TraceEventSyntheticDelay::ApplyDelay(base::TimeTicks end_time) {
144 TRACE_EVENT0("synthetic_delay", name_.c_str()); 144 TRACE_EVENT0("synthetic_delay", name_.c_str());
145 while (clock_->Now() < end_time) { 145 while (clock_->Now() < end_time) {
146 // Busy loop. 146 // Busy loop.
147 } 147 }
148 } 148 }
149 149
150 TraceEventSyntheticDelayRegistry* 150 TraceEventSyntheticDelayRegistry*
151 TraceEventSyntheticDelayRegistry::GetInstance() { 151 TraceEventSyntheticDelayRegistry::GetInstance() {
152 return Singleton< 152 return base::Singleton<
153 TraceEventSyntheticDelayRegistry, 153 TraceEventSyntheticDelayRegistry,
154 LeakySingletonTraits<TraceEventSyntheticDelayRegistry> >::get(); 154 base::LeakySingletonTraits<TraceEventSyntheticDelayRegistry> >::get();
155 } 155 }
156 156
157 TraceEventSyntheticDelayRegistry::TraceEventSyntheticDelayRegistry() 157 TraceEventSyntheticDelayRegistry::TraceEventSyntheticDelayRegistry()
158 : delay_count_(0) {} 158 : delay_count_(0) {}
159 159
160 TraceEventSyntheticDelay* TraceEventSyntheticDelayRegistry::GetOrCreateDelay( 160 TraceEventSyntheticDelay* TraceEventSyntheticDelayRegistry::GetOrCreateDelay(
161 const char* name) { 161 const char* name) {
162 // Try to find an existing delay first without locking to make the common case 162 // Try to find an existing delay first without locking to make the common case
163 // fast. 163 // fast.
164 int delay_count = base::subtle::Acquire_Load(&delay_count_); 164 int delay_count = base::subtle::Acquire_Load(&delay_count_);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 delay_impl = 226 delay_impl =
227 base::trace_event::TraceEventSyntheticDelayRegistry::GetInstance() 227 base::trace_event::TraceEventSyntheticDelayRegistry::GetInstance()
228 ->GetOrCreateDelay(name); 228 ->GetOrCreateDelay(name);
229 base::subtle::Release_Store( 229 base::subtle::Release_Store(
230 impl_ptr, reinterpret_cast<base::subtle::AtomicWord>(delay_impl)); 230 impl_ptr, reinterpret_cast<base::subtle::AtomicWord>(delay_impl));
231 } 231 }
232 return delay_impl; 232 return delay_impl;
233 } 233 }
234 234
235 } // namespace trace_event_internal 235 } // namespace trace_event_internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698