summaryrefslogtreecommitdiffstats
path: root/chromium/base/task/sequence_manager/work_queue_sets.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/base/task/sequence_manager/work_queue_sets.cc')
-rw-r--r--chromium/base/task/sequence_manager/work_queue_sets.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/chromium/base/task/sequence_manager/work_queue_sets.cc b/chromium/base/task/sequence_manager/work_queue_sets.cc
index c2f9886271d..68ec9613338 100644
--- a/chromium/base/task/sequence_manager/work_queue_sets.cc
+++ b/chromium/base/task/sequence_manager/work_queue_sets.cc
@@ -237,6 +237,19 @@ bool WorkQueueSets::ContainsWorkQueueForTest(
}
#endif
+void WorkQueueSets::CollectSkippedOverLowerPriorityTasks(
+ const internal::WorkQueue* selected_work_queue,
+ std::vector<const Task*>* result) const {
+ EnqueueOrder selected_enqueue_order;
+ CHECK(selected_work_queue->GetFrontTaskEnqueueOrder(&selected_enqueue_order));
+ for (size_t priority = selected_work_queue->work_queue_set_index() + 1;
+ priority < TaskQueue::kQueuePriorityCount; priority++) {
+ for (const OldestTaskEnqueueOrder& pair : work_queue_heaps_[priority]) {
+ pair.value->CollectTasksOlderThan(selected_enqueue_order, result);
+ }
+ }
+}
+
} // namespace internal
} // namespace sequence_manager
} // namespace base