Index: components/timers/alarm_timer.cc |
diff --git a/components/timers/alarm_timer.cc b/components/timers/alarm_timer.cc |
index 799a1ec7e98b63c9104b9a88f891cc4e6a9a1d9a..8b46020af5496fe191e405218098defaf1166a75 100644 |
--- a/components/timers/alarm_timer.cc |
+++ b/components/timers/alarm_timer.cc |
@@ -38,6 +38,27 @@ AlarmTimer::~AlarmTimer() { |
Stop(); |
} |
+void AlarmTimer::OnTimerFired() { |
+ if (!base::Timer::IsRunning()) |
+ return; |
+ |
+ DCHECK(pending_task_.get()); |
+ |
+ // Take ownership of the pending user task, which is going to be cleared by |
+ // the Stop() or Reset() functions below. |
+ scoped_ptr<base::PendingTask> pending_user_task(pending_task_.Pass()); |
+ |
+ // Re-schedule or stop the timer as requested. |
+ if (base::Timer::is_repeating()) |
+ Reset(); |
+ else |
+ Stop(); |
+ |
+ // Now run the user task. |
+ base::MessageLoop::current()->task_annotator()->RunTask( |
+ "AlarmTimer::Reset", "AlarmTimer::OnTimerFired", *pending_user_task); |
+} |
+ |
void AlarmTimer::Stop() { |
if (!can_wake_from_suspend_) { |
base::Timer::Stop(); |
@@ -103,25 +124,4 @@ void AlarmTimer::WillDestroyCurrentMessageLoop() { |
Stop(); |
} |
-void AlarmTimer::OnTimerFired() { |
- if (!base::Timer::is_running()) |
- return; |
- |
- DCHECK(pending_task_.get()); |
- |
- // Take ownership of the pending user task, which is going to be cleared by |
- // the Stop() or Reset() functions below. |
- scoped_ptr<base::PendingTask> pending_user_task(pending_task_.Pass()); |
- |
- // Re-schedule or stop the timer as requested. |
- if (base::Timer::is_repeating()) |
- Reset(); |
- else |
- Stop(); |
- |
- // Now run the user task. |
- base::MessageLoop::current()->task_annotator()->RunTask( |
- "AlarmTimer::Reset", "AlarmTimer::OnTimerFired", *pending_user_task); |
-} |
- |
} // namespace timers |