OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/domain_reliability/dispatcher.h" | 5 #include "components/domain_reliability/dispatcher.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
76 std::set<Task*> tasks; | 76 std::set<Task*> tasks; |
77 tasks.swap(eligible_tasks_); | 77 tasks.swap(eligible_tasks_); |
78 | 78 |
79 for (auto* task : tasks) { | 79 for (auto* task : tasks) { |
80 DCHECK(task); | 80 DCHECK(task); |
81 DCHECK(task->eligible); | 81 DCHECK(task->eligible); |
82 RunAndDeleteTask(task); | 82 RunAndDeleteTask(task); |
83 } | 83 } |
84 } | 84 } |
85 | 85 |
86 void DomainReliabilityDispatcher::RunAllTasksForTesting() { | |
87 std::set<Task*> tasks; | |
88 for (auto& task : tasks_) | |
89 tasks.insert(task.get()); | |
mmenke
2016/12/14 19:12:17
std::set<Task*> tasks = tasks_;?
Julia Tuttle
2016/12/15 21:53:00
Doesn't work; tasks_ contains unique_ptr<Task> whi
| |
90 | |
91 for (auto* task : tasks) { | |
92 DCHECK(task); | |
93 RunAndDeleteTask(task); | |
94 } | |
mmenke
2016/12/14 19:12:17
I assume we can't just do:
while(!tasks.empty())
Julia Tuttle
2016/12/15 21:53:00
Yeah, same contract as RunEligibleTasks -- it runs
| |
95 } | |
96 | |
86 void DomainReliabilityDispatcher::MakeTaskWaiting(Task* task) { | 97 void DomainReliabilityDispatcher::MakeTaskWaiting(Task* task) { |
87 DCHECK(task); | 98 DCHECK(task); |
88 DCHECK(!task->eligible); | 99 DCHECK(!task->eligible); |
89 DCHECK(!task->timer->IsRunning()); | 100 DCHECK(!task->timer->IsRunning()); |
90 task->timer->Start(FROM_HERE, | 101 task->timer->Start(FROM_HERE, |
91 task->min_delay, | 102 task->min_delay, |
92 base::Bind(&DomainReliabilityDispatcher::MakeTaskEligible, | 103 base::Bind(&DomainReliabilityDispatcher::MakeTaskEligible, |
93 base::Unretained(this), | 104 base::Unretained(this), |
94 task)); | 105 task)); |
95 } | 106 } |
(...skipping 21 matching lines...) Expand all Loading... | |
117 auto it = std::find_if(tasks_.begin(), tasks_.end(), | 128 auto it = std::find_if(tasks_.begin(), tasks_.end(), |
118 [task](const std::unique_ptr<Task>& task_ptr) { | 129 [task](const std::unique_ptr<Task>& task_ptr) { |
119 return task_ptr.get() == task; | 130 return task_ptr.get() == task; |
120 }); | 131 }); |
121 | 132 |
122 DCHECK(it != tasks_.end()); | 133 DCHECK(it != tasks_.end()); |
123 tasks_.erase(it); | 134 tasks_.erase(it); |
124 } | 135 } |
125 | 136 |
126 } // namespace domain_reliability | 137 } // namespace domain_reliability |
OLD | NEW |