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

Unified Diff: cc/test/ordered_simple_task_runner.cc

Issue 2627863002: Split Closure part of TestPendingTask out of the struct (Closed)
Patch Set: rebase Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/test/ordered_simple_task_runner.h ('k') | cc/test/ordered_simple_task_runner_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/test/ordered_simple_task_runner.cc
diff --git a/cc/test/ordered_simple_task_runner.cc b/cc/test/ordered_simple_task_runner.cc
index 9dc4bbcd2dacb680d586699576a632e286aab037..dcf6f5fd4069e3b3b912df29e6a6f18b454dc2d8 100644
--- a/cc/test/ordered_simple_task_runner.cc
+++ b/cc/test/ordered_simple_task_runner.cc
@@ -28,33 +28,28 @@
namespace cc {
// TestOrderablePendingTask implementation
-TestOrderablePendingTask::TestOrderablePendingTask()
- : base::TestPendingTask(),
- task_id_(TestOrderablePendingTask::task_id_counter++) {
-}
+TestOrderablePendingTaskInfo::TestOrderablePendingTaskInfo()
+ : task_id_(TestOrderablePendingTaskInfo::task_id_counter++) {}
-TestOrderablePendingTask::TestOrderablePendingTask(
+TestOrderablePendingTaskInfo::TestOrderablePendingTaskInfo(
const tracked_objects::Location& location,
- const base::Closure& task,
base::TimeTicks post_time,
base::TimeDelta delay,
TestNestability nestability)
- : base::TestPendingTask(location, task, post_time, delay, nestability),
- task_id_(TestOrderablePendingTask::task_id_counter++) {
-}
+ : base::TestPendingTaskInfo(location, post_time, delay, nestability),
+ task_id_(TestOrderablePendingTaskInfo::task_id_counter++) {}
-size_t TestOrderablePendingTask::task_id_counter = 0;
+size_t TestOrderablePendingTaskInfo::task_id_counter = 0;
-TestOrderablePendingTask::~TestOrderablePendingTask() {
-}
+TestOrderablePendingTaskInfo::~TestOrderablePendingTaskInfo() {}
-bool TestOrderablePendingTask::operator==(
- const TestOrderablePendingTask& other) const {
+bool TestOrderablePendingTaskInfo::operator==(
+ const TestOrderablePendingTaskInfo& other) const {
return task_id_ == other.task_id_;
}
-bool TestOrderablePendingTask::operator<(
- const TestOrderablePendingTask& other) const {
+bool TestOrderablePendingTaskInfo::operator<(
+ const TestOrderablePendingTaskInfo& other) const {
if (*this == other)
return false;
@@ -65,14 +60,14 @@ bool TestOrderablePendingTask::operator<(
}
std::unique_ptr<base::trace_event::ConvertableToTraceFormat>
-TestOrderablePendingTask::AsValue() const {
+TestOrderablePendingTaskInfo::AsValue() const {
std::unique_ptr<base::trace_event::TracedValue> state(
new base::trace_event::TracedValue());
AsValueInto(state.get());
return std::move(state);
}
-void TestOrderablePendingTask::AsValueInto(
+void TestOrderablePendingTaskInfo::AsValueInto(
base::trace_event::TracedValue* state) const {
state->SetInteger("id", base::saturated_cast<int>(task_id_));
state->SetInteger("run_at", GetTimeToRun().ToInternalValue());
@@ -102,11 +97,11 @@ bool OrderedSimpleTaskRunner::PostDelayedTask(
const base::Closure& task,
base::TimeDelta delay) {
DCHECK(thread_checker_.CalledOnValidThread());
- TestOrderablePendingTask pt(from_here, task, now_src_->NowTicks(), delay,
- base::TestPendingTask::NESTABLE);
+ TestOrderablePendingTaskInfo pt(from_here, now_src_->NowTicks(), delay,
+ base::TestPendingTaskInfo::NESTABLE);
TRACE_TASK("OrderedSimpleTaskRunner::PostDelayedTask", pt);
- pending_tasks_.insert(pt);
+ pending_tasks_.insert(std::make_pair(pt, task));
return true;
}
@@ -115,11 +110,11 @@ bool OrderedSimpleTaskRunner::PostNonNestableDelayedTask(
const base::Closure& task,
base::TimeDelta delay) {
DCHECK(thread_checker_.CalledOnValidThread());
- TestOrderablePendingTask pt(from_here, task, now_src_->NowTicks(), delay,
- base::TestPendingTask::NON_NESTABLE);
+ TestOrderablePendingTaskInfo pt(from_here, now_src_->NowTicks(), delay,
+ base::TestPendingTaskInfo::NON_NESTABLE);
TRACE_TASK("OrderedSimpleTaskRunner::PostNonNestableDelayedTask", pt);
- pending_tasks_.insert(pt);
+ pending_tasks_.insert(std::make_pair(pt, task));
return true;
}
@@ -141,7 +136,8 @@ base::TimeTicks OrderedSimpleTaskRunner::NextTaskTime() {
return AbsoluteMaxNow();
}
- return pending_tasks_.begin()->GetTimeToRun();
+ const base::TestPendingTaskInfo& task_info = pending_tasks_.begin()->first;
+ return task_info.GetTimeToRun();
}
base::TimeDelta OrderedSimpleTaskRunner::DelayToNextTaskTime() {
@@ -215,14 +211,15 @@ bool OrderedSimpleTaskRunner::RunTasksWhile(
break;
}
- std::set<TestOrderablePendingTask>::iterator task_to_run =
+ TestOrderablePendingTaskQueue::iterator task_to_run =
pending_tasks_.begin();
{
- TRACE_EVENT1("cc",
- "OrderedSimpleTaskRunner::RunPendingTasks running",
- "task",
- task_to_run->AsValue());
- task_to_run->task.Run();
+ const base::TestPendingTaskInfo& task_info = task_to_run->first;
+ base::OnceClosure task = std::move(task_to_run->second);
+
+ TRACE_EVENT1("cc", "OrderedSimpleTaskRunner::RunPendingTasks running",
+ "task", task_info.AsValue());
+ std::move(task).Run();
}
pending_tasks_.erase(task_to_run);
@@ -277,12 +274,9 @@ void OrderedSimpleTaskRunner::AsValueInto(
base::saturated_cast<int>(pending_tasks_.size()));
state->BeginArray("tasks");
- for (std::set<TestOrderablePendingTask>::const_iterator it =
- pending_tasks_.begin();
- it != pending_tasks_.end();
- ++it) {
+ for (const auto& pending_task : pending_tasks_) {
state->BeginDictionary();
- it->AsValueInto(state);
+ pending_task.first.AsValueInto(state);
state->EndDictionary();
}
state->EndArray();
@@ -310,15 +304,17 @@ bool OrderedSimpleTaskRunner::TaskRunCountBelowCallback(size_t max_tasks,
}
base::Callback<bool(void)> OrderedSimpleTaskRunner::TaskExistedInitially() {
- // base::Bind takes a copy of pending_tasks_
+ std::set<size_t> existing_task_ids;
+ for (const auto& task : pending_tasks_)
+ existing_task_ids.insert(task.first.task_id());
return base::Bind(&OrderedSimpleTaskRunner::TaskExistedInitiallyCallback,
- base::Unretained(this),
- pending_tasks_);
+ base::Unretained(this), std::move(existing_task_ids));
}
bool OrderedSimpleTaskRunner::TaskExistedInitiallyCallback(
- const std::set<TestOrderablePendingTask>& existing_tasks) {
- return existing_tasks.find(*pending_tasks_.begin()) != existing_tasks.end();
+ const std::set<size_t>& existing_task_ids) {
+ const TestOrderablePendingTaskInfo& task_info = pending_tasks_.begin()->first;
+ return existing_task_ids.find(task_info.task_id()) != existing_task_ids.end();
}
base::Callback<bool(void)> OrderedSimpleTaskRunner::NowBefore(
« no previous file with comments | « cc/test/ordered_simple_task_runner.h ('k') | cc/test/ordered_simple_task_runner_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698