Index: base/task_scheduler/task_scheduler_impl.h |
diff --git a/base/task_scheduler/task_scheduler_impl.h b/base/task_scheduler/task_scheduler_impl.h |
index 5a83d0a6dbeacdc4271e8dbdefb7b59352522ad9..c510ac66e9239c21e111a7588148a1f3ccfa0ead 100644 |
--- a/base/task_scheduler/task_scheduler_impl.h |
+++ b/base/task_scheduler/task_scheduler_impl.h |
@@ -9,7 +9,6 @@ |
#include <vector> |
#include "base/base_export.h" |
-#include "base/callback.h" |
#include "base/logging.h" |
#include "base/macros.h" |
#include "base/memory/ref_counted.h" |
@@ -23,7 +22,6 @@ |
namespace base { |
class HistogramBase; |
-class SchedulerWorkerPoolParams; |
namespace internal { |
@@ -35,13 +33,12 @@ class TaskTracker; |
class BASE_EXPORT TaskSchedulerImpl : public TaskScheduler { |
public: |
// Creates and returns an initialized TaskSchedulerImpl. CHECKs on failure. |
- // |worker_pool_params_vector| describes the worker pools to create. |
- // |worker_pool_index_for_traits_callback| returns the index in |worker_pools| |
- // of the worker pool in which a task with given traits should run. |
+ // |name| is used to label threads and histograms. It should identify the |
+ // component that creates the TaskScheduler. |init_params| is used to |
+ // initialize the worker pools. |
static std::unique_ptr<TaskSchedulerImpl> Create( |
- const std::vector<SchedulerWorkerPoolParams>& worker_pool_params_vector, |
- const WorkerPoolIndexForTraitsCallback& |
- worker_pool_index_for_traits_callback); |
+ const std::string& name, |
+ const TaskSchedulerInitParams& init_params); |
~TaskSchedulerImpl() override; |
@@ -64,11 +61,9 @@ class BASE_EXPORT TaskSchedulerImpl : public TaskScheduler { |
void JoinForTesting() override; |
private: |
- explicit TaskSchedulerImpl(const WorkerPoolIndexForTraitsCallback& |
- worker_pool_index_for_traits_callback); |
+ TaskSchedulerImpl(const std::string& name); |
- void Initialize( |
- const std::vector<SchedulerWorkerPoolParams>& worker_pool_params_vector); |
+ void Initialize(const TaskSchedulerInitParams& init_params); |
// Returns the worker pool that runs Tasks with |traits|. |
SchedulerWorkerPoolImpl* GetWorkerPoolForTraits( |
@@ -78,13 +73,13 @@ class BASE_EXPORT TaskSchedulerImpl : public TaskScheduler { |
// worker pops a Task from it. |
void ReEnqueueSequenceCallback(scoped_refptr<Sequence> sequence); |
+ const std::string name_; |
Thread service_thread_; |
std::unique_ptr<TaskTracker> task_tracker_; |
std::unique_ptr<DelayedTaskManager> delayed_task_manager_; |
std::unique_ptr<SchedulerSingleThreadTaskRunnerManager> |
single_thread_task_runner_manager_; |
- const WorkerPoolIndexForTraitsCallback worker_pool_index_for_traits_callback_; |
- std::vector<std::unique_ptr<SchedulerWorkerPoolImpl>> worker_pools_; |
+ std::unique_ptr<SchedulerWorkerPoolImpl> worker_pools_[4]; |
#if DCHECK_IS_ON() |
// Set once JoinForTesting() has returned. |