Index: base/task_scheduler/task_scheduler.cc |
diff --git a/base/task_scheduler/task_scheduler.cc b/base/task_scheduler/task_scheduler.cc |
index 592d6f4a15ecb97f79f890cbd66ee9001c82f596..bff2de65a422e5be152e8d4b1b29f9233fd127da 100644 |
--- a/base/task_scheduler/task_scheduler.cc |
+++ b/base/task_scheduler/task_scheduler.cc |
@@ -23,6 +23,20 @@ TaskScheduler* g_task_scheduler = nullptr; |
} // namespace |
+TaskScheduler::InitParams::InitParams( |
+ const SchedulerWorkerPoolParams& background_worker_pool_params_in, |
+ const SchedulerWorkerPoolParams& background_blocking_worker_pool_params_in, |
+ const SchedulerWorkerPoolParams& foreground_worker_pool_params_in, |
+ const SchedulerWorkerPoolParams& foreground_blocking_worker_pool_params_in) |
+ : background_worker_pool_params(background_worker_pool_params_in), |
+ background_blocking_worker_pool_params( |
+ background_blocking_worker_pool_params_in), |
+ foreground_worker_pool_params(foreground_worker_pool_params_in), |
+ foreground_blocking_worker_pool_params( |
+ foreground_blocking_worker_pool_params_in) {} |
+ |
+TaskScheduler::InitParams::~InitParams() = default; |
+ |
#if !defined(OS_NACL) |
// static |
void TaskScheduler::CreateAndSetSimpleTaskScheduler(const std::string& name) { |
@@ -31,7 +45,7 @@ void TaskScheduler::CreateAndSetSimpleTaskScheduler(const std::string& name) { |
worker_pool_params_vector.emplace_back( |
name, ThreadPriority::NORMAL, |
SchedulerWorkerPoolParams::StandbyThreadPolicy::LAZY, |
- std::max(kMinNumThreads, base::SysInfo::NumberOfProcessors()), |
+ std::max(kMinNumThreads, SysInfo::NumberOfProcessors()), |
TimeDelta::FromSeconds(30)); |
CreateAndSetDefaultTaskScheduler( |
worker_pool_params_vector, |
@@ -48,6 +62,12 @@ void TaskScheduler::CreateAndSetDefaultTaskScheduler( |
worker_pool_params_vector, worker_pool_index_for_traits_callback)); |
} |
+void TaskScheduler::CreateAndSetDefaultTaskScheduler( |
+ const std::string& name, |
+ const InitParams& init_params) { |
+ SetInstance(internal::TaskSchedulerImpl::Create(name, init_params)); |
+} |
+ |
// static |
void TaskScheduler::SetInstance(std::unique_ptr<TaskScheduler> task_scheduler) { |
delete g_task_scheduler; |