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 e2ff1ef1058a49e61724b2bfdd211a1f7a7a1564..721e1daf76dc56d86959378db34ed561194fe84b 100644 |
--- a/base/task_scheduler/scheduler_single_thread_task_runner_manager.cc |
+++ b/base/task_scheduler/scheduler_single_thread_task_runner_manager.cc |
@@ -313,18 +313,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_); |
} |
@@ -358,17 +349,21 @@ void SchedulerSingleThreadTaskRunnerManager::Start() { |
scoped_refptr<SingleThreadTaskRunner> |
SchedulerSingleThreadTaskRunnerManager::CreateSingleThreadTaskRunnerWithTraits( |
+ const std::string& name, |
+ ThreadPriority priority_hint, |
const TaskTraits& traits) { |
return CreateSingleThreadTaskRunnerWithDelegate<SchedulerWorkerDelegate>( |
- traits); |
+ name, priority_hint, traits); |
} |
#if defined(OS_WIN) |
scoped_refptr<SingleThreadTaskRunner> |
SchedulerSingleThreadTaskRunnerManager::CreateCOMSTATaskRunnerWithTraits( |
+ const std::string& name, |
+ ThreadPriority priority_hint, |
const TaskTraits& traits) { |
return CreateSingleThreadTaskRunnerWithDelegate<SchedulerWorkerCOMDelegate>( |
- traits); |
+ name, priority_hint, traits); |
} |
#endif // defined(OS_WIN) |
@@ -392,32 +387,29 @@ void SchedulerSingleThreadTaskRunnerManager::JoinForTesting() { |
template <typename DelegateType> |
scoped_refptr<SingleThreadTaskRunner> SchedulerSingleThreadTaskRunnerManager:: |
- CreateSingleThreadTaskRunnerWithDelegate(const TaskTraits& traits) { |
- size_t index = worker_pool_index_for_traits_callback_.Run(traits); |
- DCHECK_LT(index, worker_pool_params_vector_.size()); |
+ CreateSingleThreadTaskRunnerWithDelegate(const std::string& name, |
+ ThreadPriority priority_hint, |
+ const TaskTraits& traits) { |
return new SchedulerSingleThreadTaskRunner( |
this, traits, |
- CreateAndRegisterSchedulerWorker<DelegateType>( |
- worker_pool_params_vector_[index])); |
+ CreateAndRegisterSchedulerWorker<DelegateType>(name, priority_hint)); |
} |
template <> |
std::unique_ptr<SchedulerWorkerDelegate> |
SchedulerSingleThreadTaskRunnerManager::CreateSchedulerWorkerDelegate< |
- SchedulerWorkerDelegate>(const SchedulerWorkerPoolParams& params, int id) { |
- return MakeUnique<SchedulerWorkerDelegate>(StringPrintf( |
- "TaskSchedulerSingleThreadWorker%d%s", id, params.name().c_str())); |
+ SchedulerWorkerDelegate>(const std::string& name, int id) { |
+ return MakeUnique<SchedulerWorkerDelegate>( |
+ StringPrintf("TaskSchedulerSingleThread%s%d", name.c_str(), id)); |
} |
#if defined(OS_WIN) |
template <> |
std::unique_ptr<SchedulerWorkerDelegate> |
SchedulerSingleThreadTaskRunnerManager::CreateSchedulerWorkerDelegate< |
- SchedulerWorkerCOMDelegate>(const SchedulerWorkerPoolParams& params, |
- int id) { |
+ SchedulerWorkerCOMDelegate>(const std::string& name, int id) { |
return MakeUnique<SchedulerWorkerCOMDelegate>( |
- StringPrintf("TaskSchedulerSingleThreadWorker%d%sCOMSTA", id, |
- params.name().c_str()), |
+ StringPrintf("TaskSchedulerSingleThreadCOMSTA%s%d", name.c_str(), id), |
task_tracker_); |
} |
#endif // defined(OS_WIN) |
@@ -425,7 +417,8 @@ SchedulerSingleThreadTaskRunnerManager::CreateSchedulerWorkerDelegate< |
template <typename DelegateType> |
SchedulerWorker* |
SchedulerSingleThreadTaskRunnerManager::CreateAndRegisterSchedulerWorker( |
- const SchedulerWorkerPoolParams& params) { |
+ const std::string& name, |
+ ThreadPriority priority_hint) { |
SchedulerWorker* worker; |
bool start_worker; |
@@ -433,8 +426,7 @@ SchedulerSingleThreadTaskRunnerManager::CreateAndRegisterSchedulerWorker( |
AutoSchedulerLock auto_lock(lock_); |
int id = next_worker_id_++; |
workers_.emplace_back(make_scoped_refptr(new SchedulerWorker( |
- params.priority_hint(), |
- CreateSchedulerWorkerDelegate<DelegateType>(params, id), |
+ priority_hint, CreateSchedulerWorkerDelegate<DelegateType>(name, id), |
task_tracker_))); |
worker = workers_.back().get(); |
start_worker = started_; |