| Index: components/scheduler/base/work_queue_sets.cc
|
| diff --git a/components/scheduler/base/work_queue_sets.cc b/components/scheduler/base/work_queue_sets.cc
|
| deleted file mode 100644
|
| index 96c5da4a01fc2877eea7e897d6f7c31f1d85f327..0000000000000000000000000000000000000000
|
| --- a/components/scheduler/base/work_queue_sets.cc
|
| +++ /dev/null
|
| @@ -1,146 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "components/scheduler/base/work_queue_sets.h"
|
| -
|
| -#include "base/logging.h"
|
| -#include "components/scheduler/base/work_queue.h"
|
| -
|
| -namespace scheduler {
|
| -namespace internal {
|
| -
|
| -WorkQueueSets::WorkQueueSets(size_t num_sets, const char* name)
|
| - : enqueue_order_to_work_queue_maps_(num_sets), name_(name) {}
|
| -
|
| -WorkQueueSets::~WorkQueueSets() {}
|
| -
|
| -void WorkQueueSets::AddQueue(WorkQueue* work_queue, size_t set_index) {
|
| - DCHECK(!work_queue->work_queue_sets());
|
| - DCHECK_LT(set_index, enqueue_order_to_work_queue_maps_.size());
|
| - EnqueueOrder enqueue_order;
|
| - bool has_enqueue_order = work_queue->GetFrontTaskEnqueueOrder(&enqueue_order);
|
| - work_queue->AssignToWorkQueueSets(this);
|
| - work_queue->AssignSetIndex(set_index);
|
| - if (!has_enqueue_order)
|
| - return;
|
| - enqueue_order_to_work_queue_maps_[set_index].insert(
|
| - std::make_pair(enqueue_order, work_queue));
|
| -}
|
| -
|
| -void WorkQueueSets::RemoveQueue(WorkQueue* work_queue) {
|
| - DCHECK_EQ(this, work_queue->work_queue_sets());
|
| - EnqueueOrder enqueue_order;
|
| - bool has_enqueue_order = work_queue->GetFrontTaskEnqueueOrder(&enqueue_order);
|
| - work_queue->AssignToWorkQueueSets(nullptr);
|
| - if (!has_enqueue_order)
|
| - return;
|
| - size_t set_index = work_queue->work_queue_set_index();
|
| - DCHECK_LT(set_index, enqueue_order_to_work_queue_maps_.size());
|
| - DCHECK_EQ(
|
| - work_queue,
|
| - enqueue_order_to_work_queue_maps_[set_index].find(enqueue_order)->second);
|
| - enqueue_order_to_work_queue_maps_[set_index].erase(enqueue_order);
|
| -}
|
| -
|
| -void WorkQueueSets::ChangeSetIndex(WorkQueue* work_queue, size_t set_index) {
|
| - DCHECK_EQ(this, work_queue->work_queue_sets());
|
| - DCHECK_LT(set_index, enqueue_order_to_work_queue_maps_.size());
|
| - EnqueueOrder enqueue_order;
|
| - bool has_enqueue_order = work_queue->GetFrontTaskEnqueueOrder(&enqueue_order);
|
| - size_t old_set = work_queue->work_queue_set_index();
|
| - DCHECK_LT(old_set, enqueue_order_to_work_queue_maps_.size());
|
| - DCHECK_NE(old_set, set_index);
|
| - work_queue->AssignSetIndex(set_index);
|
| - if (!has_enqueue_order)
|
| - return;
|
| - enqueue_order_to_work_queue_maps_[old_set].erase(enqueue_order);
|
| - enqueue_order_to_work_queue_maps_[set_index].insert(
|
| - std::make_pair(enqueue_order, work_queue));
|
| -}
|
| -
|
| -void WorkQueueSets::OnPushQueue(WorkQueue* work_queue) {
|
| - // NOTE if this funciton changes, we need to keep |WorkQueueSets::AddQueue| in
|
| - // sync.
|
| - DCHECK_EQ(this, work_queue->work_queue_sets());
|
| - EnqueueOrder enqueue_order;
|
| - bool has_enqueue_order = work_queue->GetFrontTaskEnqueueOrder(&enqueue_order);
|
| - DCHECK(has_enqueue_order);
|
| - size_t set_index = work_queue->work_queue_set_index();
|
| - DCHECK_LT(set_index, enqueue_order_to_work_queue_maps_.size())
|
| - << " set_index = " << set_index;
|
| - enqueue_order_to_work_queue_maps_[set_index].insert(
|
| - std::make_pair(enqueue_order, work_queue));
|
| -}
|
| -
|
| -void WorkQueueSets::OnPopQueue(WorkQueue* work_queue) {
|
| - size_t set_index = work_queue->work_queue_set_index();
|
| - DCHECK_EQ(this, work_queue->work_queue_sets());
|
| - DCHECK_LT(set_index, enqueue_order_to_work_queue_maps_.size());
|
| - DCHECK(!enqueue_order_to_work_queue_maps_[set_index].empty())
|
| - << " set_index = " << set_index;
|
| - DCHECK_EQ(enqueue_order_to_work_queue_maps_[set_index].begin()->second,
|
| - work_queue)
|
| - << " set_index = " << set_index;
|
| - // O(1) amortised.
|
| - enqueue_order_to_work_queue_maps_[set_index].erase(
|
| - enqueue_order_to_work_queue_maps_[set_index].begin());
|
| - EnqueueOrder enqueue_order;
|
| - bool has_enqueue_order = work_queue->GetFrontTaskEnqueueOrder(&enqueue_order);
|
| - if (!has_enqueue_order)
|
| - return;
|
| - enqueue_order_to_work_queue_maps_[set_index].insert(
|
| - std::make_pair(enqueue_order, work_queue));
|
| -}
|
| -
|
| -bool WorkQueueSets::GetOldestQueueInSet(size_t set_index,
|
| - WorkQueue** out_work_queue) const {
|
| - DCHECK_LT(set_index, enqueue_order_to_work_queue_maps_.size());
|
| - if (enqueue_order_to_work_queue_maps_[set_index].empty())
|
| - return false;
|
| - *out_work_queue =
|
| - enqueue_order_to_work_queue_maps_[set_index].begin()->second;
|
| -#ifndef NDEBUG
|
| - EnqueueOrder enqueue_order;
|
| - DCHECK((*out_work_queue)->GetFrontTaskEnqueueOrder(&enqueue_order));
|
| - DCHECK_EQ(enqueue_order,
|
| - enqueue_order_to_work_queue_maps_[set_index].begin()->first);
|
| -#endif
|
| - return true;
|
| -}
|
| -
|
| -bool WorkQueueSets::IsSetEmpty(size_t set_index) const {
|
| - DCHECK_LT(set_index, enqueue_order_to_work_queue_maps_.size())
|
| - << " set_index = " << set_index;
|
| - return enqueue_order_to_work_queue_maps_[set_index].empty();
|
| -}
|
| -
|
| -#if DCHECK_IS_ON() || !defined(NDEBUG)
|
| -bool WorkQueueSets::ContainsWorkQueueForTest(
|
| - const WorkQueue* work_queue) const {
|
| - EnqueueOrder enqueue_order;
|
| - bool has_enqueue_order = work_queue->GetFrontTaskEnqueueOrder(&enqueue_order);
|
| -
|
| - for (const EnqueueOrderToWorkQueueMap& map :
|
| - enqueue_order_to_work_queue_maps_) {
|
| - for (const EnqueueOrderToWorkQueueMap::value_type& key_value_pair : map) {
|
| - if (key_value_pair.second == work_queue) {
|
| - DCHECK(has_enqueue_order);
|
| - DCHECK_EQ(key_value_pair.first, enqueue_order);
|
| - DCHECK_EQ(this, work_queue->work_queue_sets());
|
| - return true;
|
| - }
|
| - }
|
| - }
|
| -
|
| - if (work_queue->work_queue_sets() == this) {
|
| - DCHECK(!has_enqueue_order);
|
| - return true;
|
| - }
|
| -
|
| - return false;
|
| -}
|
| -#endif
|
| -
|
| -} // namespace internal
|
| -} // namespace scheduler
|
|
|