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

Unified Diff: base/task_scheduler/scheduler_single_thread_task_runner_manager.cc

Issue 2749303002: [reference - do not submit] Always create four pools in TaskSchedulerImpl. (Closed)
Patch Set: rebase Created 3 years, 9 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: base/task_scheduler/scheduler_single_thread_task_runner_manager.cc
diff --git a/base/task_scheduler/scheduler_single_thread_task_runner_manager.cc b/base/task_scheduler/scheduler_single_thread_task_runner_manager.cc
index 6a2676fb49b9e20bb8f06ea8b52a4839a76a8922..dc9d5379e06c016df4d556361f2a2fe8df316bc3 100644
--- a/base/task_scheduler/scheduler_single_thread_task_runner_manager.cc
+++ b/base/task_scheduler/scheduler_single_thread_task_runner_manager.cc
@@ -207,18 +207,9 @@ class SchedulerSingleThreadTaskRunnerManager::SchedulerSingleThreadTaskRunner
};
SchedulerSingleThreadTaskRunnerManager::SchedulerSingleThreadTaskRunnerManager(
- const std::vector<SchedulerWorkerPoolParams>& worker_pool_params_vector,
- const TaskScheduler::WorkerPoolIndexForTraitsCallback&
- worker_pool_index_for_traits_callback,
TaskTracker* task_tracker,
DelayedTaskManager* delayed_task_manager)
- : worker_pool_params_vector_(worker_pool_params_vector),
- worker_pool_index_for_traits_callback_(
- worker_pool_index_for_traits_callback),
- task_tracker_(task_tracker),
- delayed_task_manager_(delayed_task_manager) {
- DCHECK_GT(worker_pool_params_vector_.size(), 0U);
- DCHECK(worker_pool_index_for_traits_callback_);
+ : task_tracker_(task_tracker), delayed_task_manager_(delayed_task_manager) {
DCHECK(task_tracker_);
DCHECK(delayed_task_manager_);
}
@@ -236,12 +227,11 @@ SchedulerSingleThreadTaskRunnerManager::
scoped_refptr<SingleThreadTaskRunner>
SchedulerSingleThreadTaskRunnerManager::CreateSingleThreadTaskRunnerWithTraits(
+ const std::string& name,
+ ThreadPriority priority_hint,
const TaskTraits& traits) {
- size_t index = worker_pool_index_for_traits_callback_.Run(traits);
- DCHECK_LT(index, worker_pool_params_vector_.size());
return new SchedulerSingleThreadTaskRunner(
- this, traits,
- CreateAndRegisterSchedulerWorker(worker_pool_params_vector_[index]));
+ this, traits, CreateAndRegisterSchedulerWorker(name, priority_hint));
}
void SchedulerSingleThreadTaskRunnerManager::JoinForTesting() {
@@ -264,14 +254,15 @@ void SchedulerSingleThreadTaskRunnerManager::JoinForTesting() {
SchedulerWorker*
SchedulerSingleThreadTaskRunnerManager::CreateAndRegisterSchedulerWorker(
- const SchedulerWorkerPoolParams& params) {
+ const std::string& name,
+ ThreadPriority priority_hint) {
AutoSchedulerLock auto_lock(workers_lock_);
int id = next_worker_id_++;
- auto delegate = MakeUnique<SchedulerWorkerDelegate>(base::StringPrintf(
- "TaskSchedulerSingleThreadWorker%d%s", id, params.name().c_str()));
- workers_.emplace_back(SchedulerWorker::Create(
- params.priority_hint(), std::move(delegate), task_tracker_,
- SchedulerWorker::InitialState::DETACHED));
+ auto delegate = MakeUnique<SchedulerWorkerDelegate>(
+ StringPrintf("TaskScheduler%sSingleThread%d", name.c_str(), id));
+ workers_.emplace_back(
+ SchedulerWorker::Create(priority_hint, std::move(delegate), task_tracker_,
+ SchedulerWorker::InitialState::DETACHED));
return workers_.back().get();
}

Powered by Google App Engine
This is Rietveld 408576698