Index: base/task_scheduler/task_scheduler.cc |
diff --git a/base/task_scheduler/task_scheduler.cc b/base/task_scheduler/task_scheduler.cc |
index 00ca4f15ce9c12b8f8f3331c314cdd7418bd6028..e0d1710ac2ddda1f2df740b59d6116ca31270c59 100644 |
--- a/base/task_scheduler/task_scheduler.cc |
+++ b/base/task_scheduler/task_scheduler.cc |
@@ -4,8 +4,11 @@ |
#include "base/task_scheduler/task_scheduler.h" |
+#include <algorithm> |
+ |
#include "base/bind.h" |
#include "base/logging.h" |
+#include "base/sys_info.h" |
#include "base/task_scheduler/scheduler_worker_pool_params.h" |
#include "base/task_scheduler/task_scheduler_impl.h" |
#include "base/threading/platform_thread.h" |
@@ -21,11 +24,13 @@ TaskScheduler* g_task_scheduler = nullptr; |
} // namespace |
// static |
-void TaskScheduler::CreateAndSetSimpleTaskScheduler(int max_threads) { |
+void TaskScheduler::CreateAndSetSimpleTaskScheduler(const std::string& name) { |
+ constexpr int kMinNumThreads = 2; |
robliao
2017/03/13 23:56:05
For single-core non-hyperthreaded processors, shou
fdoray
2017/03/14 15:08:22
1 might be a more justifiable lower bound.
|
std::vector<SchedulerWorkerPoolParams> worker_pool_params_vector; |
worker_pool_params_vector.emplace_back( |
- "Simple", ThreadPriority::NORMAL, |
- SchedulerWorkerPoolParams::StandbyThreadPolicy::LAZY, max_threads, |
+ name, ThreadPriority::NORMAL, |
+ SchedulerWorkerPoolParams::StandbyThreadPolicy::LAZY, |
+ std::max(kMinNumThreads, base::SysInfo::NumberOfProcessors()), |
TimeDelta::FromSeconds(30)); |
CreateAndSetDefaultTaskScheduler( |
worker_pool_params_vector, |