| Index: base/task_scheduler/task_scheduler.cc
|
| diff --git a/base/task_scheduler/task_scheduler.cc b/base/task_scheduler/task_scheduler.cc
|
| index bff2de65a422e5be152e8d4b1b29f9233fd127da..0e621f122263dfc2089363c36c03672d8cd83eaa 100644
|
| --- a/base/task_scheduler/task_scheduler.cc
|
| +++ b/base/task_scheduler/task_scheduler.cc
|
| @@ -40,16 +40,29 @@ TaskScheduler::InitParams::~InitParams() = default;
|
| #if !defined(OS_NACL)
|
| // static
|
| void TaskScheduler::CreateAndSetSimpleTaskScheduler(const std::string& name) {
|
| - constexpr int kMinNumThreads = 1;
|
| - std::vector<SchedulerWorkerPoolParams> worker_pool_params_vector;
|
| - worker_pool_params_vector.emplace_back(
|
| - name, ThreadPriority::NORMAL,
|
| - SchedulerWorkerPoolParams::StandbyThreadPolicy::LAZY,
|
| - std::max(kMinNumThreads, SysInfo::NumberOfProcessors()),
|
| - TimeDelta::FromSeconds(30));
|
| + using StandbyThreadPolicy = SchedulerWorkerPoolParams::StandbyThreadPolicy;
|
| +
|
| + // Values were chosen so that:
|
| + // * There are few background threads.
|
| + // * Background threads never outnumber foreground threads.
|
| + // * The system is utilized maximally by foreground threads.
|
| + const int num_cores = SysInfo::NumberOfProcessors();
|
| + constexpr int kBackgroundMaxThreads = 1;
|
| + constexpr int kBackgroundBlockingMaxThreads = 2;
|
| + const int kForegroundMaxThreads = std::max(1, num_cores);
|
| + const int kForegroundBlockingMaxThreads = std::max(2, num_cores);
|
| +
|
| + constexpr TimeDelta kSuggestedReclaimTime = TimeDelta::FromSeconds(30);
|
| +
|
| CreateAndSetDefaultTaskScheduler(
|
| - worker_pool_params_vector,
|
| - Bind([](const TaskTraits&) -> size_t { return 0; }));
|
| + name, {{StandbyThreadPolicy::LAZY, kBackgroundMaxThreads,
|
| + kSuggestedReclaimTime},
|
| + {StandbyThreadPolicy::LAZY, kBackgroundBlockingMaxThreads,
|
| + kSuggestedReclaimTime},
|
| + {StandbyThreadPolicy::LAZY, kForegroundMaxThreads,
|
| + kSuggestedReclaimTime},
|
| + {StandbyThreadPolicy::LAZY, kForegroundBlockingMaxThreads,
|
| + kSuggestedReclaimTime}});
|
| }
|
| #endif // !defined(OS_NACL)
|
|
|
|
|