| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VM_TIMER_H_ | 5 #ifndef VM_TIMER_H_ |
| 6 #define VM_TIMER_H_ | 6 #define VM_TIMER_H_ |
| 7 | 7 |
| 8 #include "platform/utils.h" | 8 #include "platform/utils.h" |
| 9 #include "vm/allocation.h" | 9 #include "vm/allocation.h" |
| 10 #include "vm/flags.h" | 10 #include "vm/flags.h" |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 // The class TimerScope is used to start and stop a timer within a scope. | 128 // The class TimerScope is used to start and stop a timer within a scope. |
| 129 // It is used as follows: | 129 // It is used as follows: |
| 130 // { | 130 // { |
| 131 // TimerScope timer(FLAG_name_of_flag, timer, isolate); | 131 // TimerScope timer(FLAG_name_of_flag, timer, isolate); |
| 132 // ..... | 132 // ..... |
| 133 // code that needs to be timed. | 133 // code that needs to be timed. |
| 134 // .... | 134 // .... |
| 135 // } | 135 // } |
| 136 class TimerScope : public StackResource { | 136 class TimerScope : public StackResource { |
| 137 public: | 137 public: |
| 138 TimerScope(bool flag, Timer* timer, BaseIsolate* isolate = NULL) | 138 TimerScope(bool flag, Timer* timer, Isolate* isolate = NULL) |
| 139 : StackResource(isolate), flag_(flag), nested_(false), timer_(timer) { | 139 : StackResource(isolate), flag_(flag), nested_(false), timer_(timer) { |
| 140 if (flag_) { | 140 if (flag_) { |
| 141 if (!timer_->running()) { | 141 if (!timer_->running()) { |
| 142 timer_->Start(); | 142 timer_->Start(); |
| 143 } else { | 143 } else { |
| 144 nested_ = true; | 144 nested_ = true; |
| 145 } | 145 } |
| 146 } | 146 } |
| 147 } | 147 } |
| 148 ~TimerScope() { | 148 ~TimerScope() { |
| 149 if (flag_) { | 149 if (flag_) { |
| 150 if (!nested_) { | 150 if (!nested_) { |
| 151 timer_->Stop(); | 151 timer_->Stop(); |
| 152 } | 152 } |
| 153 } | 153 } |
| 154 } | 154 } |
| 155 | 155 |
| 156 private: | 156 private: |
| 157 const bool flag_; | 157 const bool flag_; |
| 158 bool nested_; | 158 bool nested_; |
| 159 Timer* const timer_; | 159 Timer* const timer_; |
| 160 | 160 |
| 161 DISALLOW_ALLOCATION(); | 161 DISALLOW_ALLOCATION(); |
| 162 DISALLOW_COPY_AND_ASSIGN(TimerScope); | 162 DISALLOW_COPY_AND_ASSIGN(TimerScope); |
| 163 }; | 163 }; |
| 164 | 164 |
| 165 | 165 |
| 166 class PauseTimerScope : public StackResource { | 166 class PauseTimerScope : public StackResource { |
| 167 public: | 167 public: |
| 168 PauseTimerScope(bool flag, Timer* timer, BaseIsolate* isolate = NULL) | 168 PauseTimerScope(bool flag, Timer* timer, Isolate* isolate = NULL) |
| 169 : StackResource(isolate), flag_(flag), nested_(false), timer_(timer) { | 169 : StackResource(isolate), flag_(flag), nested_(false), timer_(timer) { |
| 170 if (flag_) { | 170 if (flag_) { |
| 171 if (timer_->running()) { | 171 if (timer_->running()) { |
| 172 timer_->Stop(); | 172 timer_->Stop(); |
| 173 } else { | 173 } else { |
| 174 nested_ = true; | 174 nested_ = true; |
| 175 } | 175 } |
| 176 } | 176 } |
| 177 } | 177 } |
| 178 ~PauseTimerScope() { | 178 ~PauseTimerScope() { |
| (...skipping 25 matching lines...) Expand all Loading... |
| 204 TimerScope vm_internal_timer_(true, &(isolate->timer_list().name()), isolate) | 204 TimerScope vm_internal_timer_(true, &(isolate->timer_list().name()), isolate) |
| 205 | 205 |
| 206 #define PAUSETIMERSCOPE(isolate, name) \ | 206 #define PAUSETIMERSCOPE(isolate, name) \ |
| 207 PauseTimerScope vm_internal_timer_(true, \ | 207 PauseTimerScope vm_internal_timer_(true, \ |
| 208 &(isolate->timer_list().name()), \ | 208 &(isolate->timer_list().name()), \ |
| 209 isolate) | 209 isolate) |
| 210 | 210 |
| 211 } // namespace dart | 211 } // namespace dart |
| 212 | 212 |
| 213 #endif // VM_TIMER_H_ | 213 #endif // VM_TIMER_H_ |
| OLD | NEW |