| Index: third_party/WebKit/Source/platform/scheduler/base/work_queue_sets.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/base/work_queue_sets.cc b/third_party/WebKit/Source/platform/scheduler/base/work_queue_sets.cc
|
| index bec08d1125db9d303c2f6487b116b1a017642460..8c608b09fba71a437b2d8382a6783e3f7f1cd6a6 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/base/work_queue_sets.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/base/work_queue_sets.cc
|
| @@ -63,6 +63,8 @@ void WorkQueueSets::OnPushQueue(WorkQueue* work_queue) {
|
| size_t set_index = work_queue->work_queue_set_index();
|
| DCHECK_LT(set_index, work_queue_heaps_.size()) << " set_index = "
|
| << set_index;
|
| + // |work_queue| should not be in work_queue_heaps_[set_index].
|
| + DCHECK(!work_queue->heap_handle().IsValid());
|
| work_queue_heaps_[set_index].insert({enqueue_order, work_queue});
|
| }
|
|
|
| @@ -81,6 +83,8 @@ void WorkQueueSets::OnPopQueue(WorkQueue* work_queue) {
|
| } else {
|
| // O(log n)
|
| work_queue_heaps_[set_index].pop();
|
| + DCHECK(work_queue_heaps_[set_index].empty() ||
|
| + work_queue_heaps_[set_index].min().value != work_queue);
|
| }
|
| }
|
|
|
| @@ -103,6 +107,18 @@ bool WorkQueueSets::GetOldestQueueInSet(size_t set_index,
|
| return true;
|
| }
|
|
|
| +bool WorkQueueSets::GetOldestQueueAndEnqueueOrderInSet(
|
| + size_t set_index,
|
| + WorkQueue** out_work_queue,
|
| + EnqueueOrder* out_enqueue_order) const {
|
| + DCHECK_LT(set_index, work_queue_heaps_.size());
|
| + if (work_queue_heaps_[set_index].empty())
|
| + return false;
|
| + *out_work_queue = work_queue_heaps_[set_index].min().value;
|
| + *out_enqueue_order = work_queue_heaps_[set_index].min().key;
|
| + return true;
|
| +}
|
| +
|
| bool WorkQueueSets::IsSetEmpty(size_t set_index) const {
|
| DCHECK_LT(set_index, work_queue_heaps_.size()) << " set_index = "
|
| << set_index;
|
|
|