summaryrefslogtreecommitdiff
path: root/base/task_scheduler/initialization_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/task_scheduler/initialization_util.cc')
-rw-r--r--base/task_scheduler/initialization_util.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/base/task_scheduler/initialization_util.cc b/base/task_scheduler/initialization_util.cc
new file mode 100644
index 0000000000..7accd19c6f
--- /dev/null
+++ b/base/task_scheduler/initialization_util.cc
@@ -0,0 +1,22 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/task_scheduler/initialization_util.h"
+
+#include <algorithm>
+
+#include "base/sys_info.h"
+
+namespace base {
+
+int RecommendedMaxNumberOfThreadsInPool(int min,
+ int max,
+ double cores_multiplier,
+ int offset) {
+ const int num_of_cores = SysInfo::NumberOfProcessors();
+ const int threads = std::ceil<int>(num_of_cores * cores_multiplier) + offset;
+ return std::min(max, std::max(min, threads));
+}
+
+} // namespace base