Index: components/task_scheduler_util/initialization_util.cc |
diff --git a/components/task_scheduler_util/initialization_util.cc b/components/task_scheduler_util/initialization_util.cc |
index ca94f42171117f036be7702fe7e8116de4395bcf..e86ae3cb1d54731d0e6ad84ac5bad81f371d2ced 100644 |
--- a/components/task_scheduler_util/initialization_util.cc |
+++ b/components/task_scheduler_util/initialization_util.cc |
@@ -22,6 +22,9 @@ namespace task_scheduler_util { |
namespace { |
+using StandbyThreadPolicy = |
+ base::SchedulerWorkerPoolParams::StandbyThreadPolicy; |
+ |
enum WorkerPoolType : size_t { |
BACKGROUND_WORKER_POOL = 0, |
BACKGROUND_FILE_IO_WORKER_POOL, |
@@ -31,6 +34,7 @@ enum WorkerPoolType : size_t { |
}; |
struct WorkerPoolVariationValues { |
+ StandbyThreadPolicy standby_thread_policy; |
int threads = 0; |
base::TimeDelta detach_period; |
}; |
@@ -70,6 +74,10 @@ WorkerPoolVariationValues StringToWorkerPoolVariationValues( |
values.threads = std::min(maximum, std::max(minimum, threads)); |
values.detach_period = |
base::TimeDelta::FromMilliseconds(detach_milliseconds); |
+ values.standby_thread_policy = |
+ (tokens.size() >= 6 && tokens[5] == "lazy") |
+ ? StandbyThreadPolicy::LAZY |
+ : StandbyThreadPolicy::ONE; |
return values; |
} |
DLOG(ERROR) << "Invalid Worker Pool Descriptor: " << pool_descriptor; |
@@ -131,6 +139,7 @@ bool InitializeDefaultTaskScheduler( |
params_vector.emplace_back(predefined_params.name, |
predefined_params.priority_hint, |
predefined_params.io_restriction, |
+ variation_values.standby_thread_policy, |
variation_values.threads, |
variation_values.detach_period); |
} |