| Index: components/scheduler/base/work_queue.cc
|
| diff --git a/components/scheduler/base/work_queue.cc b/components/scheduler/base/work_queue.cc
|
| index 6051a4921c85fd4a410f76fe3fdd81bda4e2ec76..338c0b1e94405733d3992ab74c9df06f1a270703 100644
|
| --- a/components/scheduler/base/work_queue.cc
|
| +++ b/components/scheduler/base/work_queue.cc
|
| @@ -23,10 +23,9 @@ void WorkQueue::AsValueInto(base::trace_event::TracedValue* state) const {
|
| }
|
| }
|
|
|
| -WorkQueue::~WorkQueue() {}
|
| -
|
| -void WorkQueue::Clear() {
|
| - work_queue_ = std::queue<TaskQueueImpl::Task>();
|
| +WorkQueue::~WorkQueue() {
|
| + DCHECK(!work_queue_sets_) << task_queue_ ->GetName() << " : "
|
| + << work_queue_sets_->name() << " : " << name_;
|
| }
|
|
|
| const TaskQueueImpl::Task* WorkQueue::GetFrontTask() const {
|
| @@ -43,21 +42,19 @@ bool WorkQueue::GetFrontTaskEnqueueOrder(EnqueueOrder* enqueue_order) const {
|
| }
|
|
|
| void WorkQueue::Push(TaskQueueImpl::Task&& task) {
|
| - DCHECK(work_queue_sets_);
|
| bool was_empty = work_queue_.empty();
|
| work_queue_.push(task);
|
| - if (was_empty)
|
| + if (was_empty && work_queue_sets_)
|
| work_queue_sets_->OnPushQueue(this);
|
| }
|
|
|
| void WorkQueue::PushAndSetEnqueueOrder(TaskQueueImpl::Task&& task,
|
| EnqueueOrder enqueue_order) {
|
| - DCHECK(work_queue_sets_);
|
| bool was_empty = work_queue_.empty();
|
| work_queue_.push(task);
|
| work_queue_.back().set_enqueue_order(enqueue_order);
|
|
|
| - if (was_empty)
|
| + if (was_empty && work_queue_sets_)
|
| work_queue_sets_->OnPushQueue(this);
|
| }
|
|
|
| @@ -66,10 +63,9 @@ void WorkQueue::PopTaskForTest() {
|
| }
|
|
|
| void WorkQueue::SwapLocked(std::queue<TaskQueueImpl::Task>& incoming_queue) {
|
| - DCHECK(work_queue_sets_);
|
| std::swap(work_queue_, incoming_queue);
|
|
|
| - if (!work_queue_.empty())
|
| + if (!work_queue_.empty() && work_queue_sets_)
|
| work_queue_sets_->OnPushQueue(this);
|
| task_queue_->TraceQueueSize(true);
|
| }
|
| @@ -84,9 +80,11 @@ TaskQueueImpl::Task WorkQueue::TakeTaskFromWorkQueue() {
|
| return pending_task;
|
| }
|
|
|
| -void WorkQueue::AssignToWorkQueueSets(WorkQueueSets* work_queue_sets,
|
| - size_t work_queue_set_index) {
|
| +void WorkQueue::AssignToWorkQueueSets(WorkQueueSets* work_queue_sets) {
|
| work_queue_sets_ = work_queue_sets;
|
| +}
|
| +
|
| +void WorkQueue::AssignSetIndex(size_t work_queue_set_index) {
|
| work_queue_set_index_ = work_queue_set_index;
|
| }
|
|
|
|
|