Line data Source code
1 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 : // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
4 : // Use of this source code is governed by a BSD-style license that can be
5 : // found in the LICENSE file.
6 :
7 : #include "base/timer.h"
8 :
9 : #include "base/message_loop.h"
10 :
11 : namespace base {
12 :
13 0 : void BaseTimer_Helper::OrphanDelayedTask() {
14 0 : if (delayed_task_) {
15 0 : delayed_task_->timer_ = nullptr;
16 0 : delayed_task_ = nullptr;
17 : }
18 0 : }
19 :
20 0 : void BaseTimer_Helper::InitiateDelayedTask(TimerTask* timer_task) {
21 0 : OrphanDelayedTask();
22 :
23 0 : delayed_task_ = timer_task;
24 0 : delayed_task_->timer_ = this;
25 0 : RefPtr<TimerTask> addrefedTask = timer_task;
26 0 : MessageLoop::current()->PostDelayedTask(
27 0 : addrefedTask.forget(),
28 0 : static_cast<int>(timer_task->delay_.InMilliseconds()));
29 0 : }
30 :
31 : } // namespace base
|