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

Side by Side Diff: storage/browser/fileapi/timed_task_helper.cc

Issue 2890143004: Rename TaskRunner::RunsTasksOnCurrentThread() in //storage (Closed)
Patch Set: for Requirements Created 3 years, 7 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "storage/browser/fileapi/timed_task_helper.h" 5 #include "storage/browser/fileapi/timed_task_helper.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 18 matching lines...) Expand all
29 : task_runner_(task_runner), 29 : task_runner_(task_runner),
30 tracker_(NULL) { 30 tracker_(NULL) {
31 } 31 }
32 32
33 TimedTaskHelper::~TimedTaskHelper() { 33 TimedTaskHelper::~TimedTaskHelper() {
34 if (tracker_) 34 if (tracker_)
35 tracker_->timer = NULL; 35 tracker_->timer = NULL;
36 } 36 }
37 37
38 bool TimedTaskHelper::IsRunning() const { 38 bool TimedTaskHelper::IsRunning() const {
39 DCHECK(task_runner_->RunsTasksOnCurrentThread()); 39 DCHECK(task_runner_->RunsTasksInCurrentSequence());
40 return tracker_ != NULL; 40 return tracker_ != NULL;
41 } 41 }
42 42
43 void TimedTaskHelper::Start( 43 void TimedTaskHelper::Start(
44 const tracked_objects::Location& posted_from, 44 const tracked_objects::Location& posted_from,
45 base::TimeDelta delay, 45 base::TimeDelta delay,
46 const base::Closure& user_task) { 46 const base::Closure& user_task) {
47 posted_from_ = posted_from; 47 posted_from_ = posted_from;
48 delay_ = delay; 48 delay_ = delay;
49 user_task_ = user_task; 49 user_task_ = user_task;
50 Reset(); 50 Reset();
51 } 51 }
52 52
53 void TimedTaskHelper::Reset() { 53 void TimedTaskHelper::Reset() {
54 DCHECK(task_runner_->RunsTasksOnCurrentThread()); 54 DCHECK(task_runner_->RunsTasksInCurrentSequence());
55 DCHECK(!user_task_.is_null()); 55 DCHECK(!user_task_.is_null());
56 desired_run_time_ = base::TimeTicks::Now() + delay_; 56 desired_run_time_ = base::TimeTicks::Now() + delay_;
57 57
58 if (tracker_) 58 if (tracker_)
59 return; 59 return;
60 60
61 // Initialize the tracker for the first time. 61 // Initialize the tracker for the first time.
62 tracker_ = new Tracker(this); 62 tracker_ = new Tracker(this);
63 PostDelayedTask(base::WrapUnique(tracker_), delay_); 63 PostDelayedTask(base::WrapUnique(tracker_), delay_);
64 } 64 }
65 65
66 // static 66 // static
67 void TimedTaskHelper::Fired(std::unique_ptr<Tracker> tracker) { 67 void TimedTaskHelper::Fired(std::unique_ptr<Tracker> tracker) {
68 if (!tracker->timer) 68 if (!tracker->timer)
69 return; 69 return;
70 TimedTaskHelper* timer = tracker->timer; 70 TimedTaskHelper* timer = tracker->timer;
71 timer->OnFired(std::move(tracker)); 71 timer->OnFired(std::move(tracker));
72 } 72 }
73 73
74 void TimedTaskHelper::OnFired(std::unique_ptr<Tracker> tracker) { 74 void TimedTaskHelper::OnFired(std::unique_ptr<Tracker> tracker) {
75 DCHECK(task_runner_->RunsTasksOnCurrentThread()); 75 DCHECK(task_runner_->RunsTasksInCurrentSequence());
76 base::TimeTicks now = base::TimeTicks::Now(); 76 base::TimeTicks now = base::TimeTicks::Now();
77 if (desired_run_time_ > now) { 77 if (desired_run_time_ > now) {
78 PostDelayedTask(std::move(tracker), desired_run_time_ - now); 78 PostDelayedTask(std::move(tracker), desired_run_time_ - now);
79 return; 79 return;
80 } 80 }
81 tracker.reset(); 81 tracker.reset();
82 base::Closure task = user_task_; 82 base::Closure task = user_task_;
83 user_task_.Reset(); 83 user_task_.Reset();
84 task.Run(); 84 task.Run();
85 } 85 }
86 86
87 void TimedTaskHelper::PostDelayedTask(std::unique_ptr<Tracker> tracker, 87 void TimedTaskHelper::PostDelayedTask(std::unique_ptr<Tracker> tracker,
88 base::TimeDelta delay) { 88 base::TimeDelta delay) {
89 task_runner_->PostDelayedTask( 89 task_runner_->PostDelayedTask(
90 posted_from_, 90 posted_from_,
91 base::Bind(&TimedTaskHelper::Fired, base::Passed(&tracker)), 91 base::Bind(&TimedTaskHelper::Fired, base::Passed(&tracker)),
92 delay); 92 delay);
93 } 93 }
94 94
95 } // namespace storage 95 } // namespace storage
OLDNEW
« no previous file with comments | « storage/browser/fileapi/task_runner_bound_observer_list.h ('k') | storage/browser/quota/quota_manager_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698