1// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/timer.h"
6
7#include "base/message_loop.h"
8
9namespace base {
10
11void BaseTimer_Helper::OrphanDelayedTask() {
12  if (delayed_task_) {
13    delayed_task_->timer_ = NULL;
14    delayed_task_ = NULL;
15  }
16}
17
18void BaseTimer_Helper::InitiateDelayedTask(TimerTask* timer_task) {
19  OrphanDelayedTask();
20
21  delayed_task_ = timer_task;
22  delayed_task_->timer_ = this;
23  MessageLoop::current()->PostDelayedTask(
24      FROM_HERE, timer_task,
25      static_cast<int>(timer_task->delay_.InMillisecondsRoundedUp()));
26}
27
28}  // namespace base
29