Chromium Code Reviews| 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..69a1a5ff8db6a98176cc23884706213f0cef1b71 100644 |
| --- a/base/task_scheduler/task_scheduler.cc |
| +++ b/base/task_scheduler/task_scheduler.cc |
| @@ -9,6 +9,7 @@ |
| #include "base/bind.h" |
| #include "base/logging.h" |
| #include "base/sys_info.h" |
| +#include "base/task_scheduler/initialization_util.h" |
| #include "base/task_scheduler/scheduler_worker_pool_params.h" |
| #include "base/task_scheduler/task_scheduler_impl.h" |
| #include "base/threading/platform_thread.h" |
| @@ -40,16 +41,39 @@ 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; |
| + |
| + constexpr TimeDelta kSuggestedReclaimTime = TimeDelta::FromSeconds(30); |
| + constexpr int kMaxNumBackgroundThreads = 1; |
| + constexpr int kMaxNumBackgroundBlockingThreads = 2; |
| + constexpr int kMaxNumForegroundThreadsLowerBound = 2; |
| + constexpr int kMaxNumForegroundThreadsUpperBound = 32; |
| + constexpr double kMaxNumForegroundThreadsCoresMultiplier = 1; |
| + constexpr int kMaxNumForegroundThreadsOffset = 0; |
| + constexpr int kMaxNumForegroundBlockingThreadsLowerBound = 2; |
| + constexpr int kMaxNumForegroundBlockingThreadsUpperBound = 64; |
|
gab
2017/04/04 20:48:13
Why 32 and 64? Seems very high for a "simple" task
fdoray
2017/04/05 13:01:28
My thinking was that someone instantiating a simpl
robliao
2017/04/05 23:06:56
An alternative way to go about this is to adjust u
|
| + constexpr double kMaxNumForegroundBlockingThreadsCoresMultiplier = 2; |
|
gab
2017/04/06 15:14:52
This isn't a MaxNum, it's a multiplier only, right
|
| + constexpr int kMaxNumForegroundBlockingThreadsOffset = 0; |
| + |
| CreateAndSetDefaultTaskScheduler( |
| - worker_pool_params_vector, |
| - Bind([](const TaskTraits&) -> size_t { return 0; })); |
| + name, {{StandbyThreadPolicy::LAZY, kMaxNumBackgroundThreads, |
| + kSuggestedReclaimTime}, |
| + {StandbyThreadPolicy::LAZY, kMaxNumBackgroundBlockingThreads, |
| + kSuggestedReclaimTime}, |
| + {StandbyThreadPolicy::LAZY, |
| + RecommendedMaxNumberOfThreadsInPool( |
| + kMaxNumForegroundThreadsLowerBound, |
| + kMaxNumForegroundThreadsUpperBound, |
| + kMaxNumForegroundThreadsCoresMultiplier, |
| + kMaxNumForegroundThreadsOffset), |
| + kSuggestedReclaimTime}, |
| + {StandbyThreadPolicy::LAZY, |
| + RecommendedMaxNumberOfThreadsInPool( |
| + kMaxNumForegroundBlockingThreadsLowerBound, |
| + kMaxNumForegroundBlockingThreadsUpperBound, |
| + kMaxNumForegroundBlockingThreadsCoresMultiplier, |
| + kMaxNumForegroundBlockingThreadsOffset), |
| + kSuggestedReclaimTime}}); |
| } |
| #endif // !defined(OS_NACL) |