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

Unified Diff: third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc

Issue 2579773002: Use WTF::Deque instead of std::queue in the blink scheduler (Closed)
Patch Set: Apply the fix Sami suggested 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
Index: third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc
diff --git a/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc b/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc
index 8ad3792e25302071d35e9993538318000014bf8b..e3a3b584141c459239a86ca823e8fc6cfa87e211 100644
--- a/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc
+++ b/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc
@@ -177,7 +177,7 @@ void TaskQueueImpl::UnregisterTaskQueue() {
any_thread().task_queue_manager = nullptr;
main_thread_only().task_queue_manager = nullptr;
main_thread_only().delayed_incoming_queue = std::priority_queue<Task>();
- any_thread().immediate_incoming_queue = std::queue<Task>();
+ any_thread().immediate_incoming_queue.clear();
main_thread_only().immediate_work_queue.reset();
main_thread_only().delayed_work_queue.reset();
}
@@ -339,9 +339,11 @@ void TaskQueueImpl::PushOntoImmediateIncomingQueueLocked(
any_thread().task_queue_manager->MaybeScheduleImmediateWork(FROM_HERE);
}
}
- any_thread().immediate_incoming_queue.emplace(
- posted_from, task, desired_run_time, sequence_number, nestable, sequence_number);
- any_thread().task_queue_manager->DidQueueTask( any_thread().immediate_incoming_queue.back());
+ any_thread().immediate_incoming_queue.emplace_back(
+ posted_from, task, desired_run_time, sequence_number, nestable,
+ sequence_number);
+ any_thread().task_queue_manager->DidQueueTask(
+ any_thread().immediate_incoming_queue.back());
TraceQueueSize(true);
}
@@ -691,18 +693,11 @@ EnqueueOrder TaskQueueImpl::GetFenceForTest() const {
}
// static
-void TaskQueueImpl::QueueAsValueInto(const std::queue<Task>& queue,
+void TaskQueueImpl::QueueAsValueInto(const WTF::Deque<Task>& queue,
base::trace_event::TracedValue* state) {
- // Remove const to search |queue| in the destructive manner. Restore the
- // content from |visited| later.
- std::queue<Task>* mutable_queue = const_cast<std::queue<Task>*>(&queue);
- std::queue<Task> visited;
- while (!mutable_queue->empty()) {
- TaskAsValueInto(mutable_queue->front(), state);
- visited.push(std::move(mutable_queue->front()));
- mutable_queue->pop();
+ for (const Task& task : queue) {
+ TaskAsValueInto(task, state);
}
- *mutable_queue = std::move(visited);
}
// static

Powered by Google App Engine
This is Rietveld 408576698