Chromium Code Reviews| Index: base/task_scheduler/scheduler_single_thread_task_runner_manager.h |
| diff --git a/base/task_scheduler/scheduler_single_thread_task_runner_manager.h b/base/task_scheduler/scheduler_single_thread_task_runner_manager.h |
| index 24d1a9a010b35661ee8235666652b16c5d0312a1..a054b5239f2b3540a3242600b990f67d8d747e53 100644 |
| --- a/base/task_scheduler/scheduler_single_thread_task_runner_manager.h |
| +++ b/base/task_scheduler/scheduler_single_thread_task_runner_manager.h |
| @@ -37,6 +37,9 @@ class SchedulerWorkerDelegate; |
| class BASE_EXPORT SchedulerSingleThreadTaskRunnerManager final { |
|
gab
2017/04/10 18:04:56
This class is missing a meta-comment, please work
fdoray
2017/04/10 19:05:00
Done.
|
| public: |
| + // Create a SchedulerSingleThreadTaskRunnerManager. Tasks posted to |
| + // SingleThreadTaskRunners obtained from this |
| + // SchedulerSingleThreadTaskRunnerManager won't run until Start() is called. |
| SchedulerSingleThreadTaskRunnerManager( |
| const std::vector<SchedulerWorkerPoolParams>& worker_pool_params_vector, |
| const TaskScheduler::WorkerPoolIndexForTraitsCallback& |
| @@ -45,6 +48,10 @@ class BASE_EXPORT SchedulerSingleThreadTaskRunnerManager final { |
| DelayedTaskManager* delayed_task_manager); |
| ~SchedulerSingleThreadTaskRunnerManager(); |
| + // Creates threads for existing SingleThreadTaskRunners and allows threads to |
| + // be created when new SingleThreadTaskRunners are created in the future. |
| + void Start(); |
| + |
| scoped_refptr<SingleThreadTaskRunner> CreateSingleThreadTaskRunnerWithTraits( |
| const TaskTraits& traits); |
| @@ -79,11 +86,14 @@ class BASE_EXPORT SchedulerSingleThreadTaskRunnerManager final { |
| TaskTracker* const task_tracker_; |
| DelayedTaskManager* const delayed_task_manager_; |
| - // Synchronizes access to |workers_| and |worker_id_|. |
| - SchedulerLock workers_lock_; |
| + // Synchronizes access to |workers_|, |next_worker_id_| and |started_|. |
| + SchedulerLock lock_; |
| std::vector<scoped_refptr<SchedulerWorker>> workers_; |
| int next_worker_id_ = 0; |
| + // Set to true when Start() is called. |
| + bool started_ = false; |
| + |
| #if DCHECK_IS_ON() |
| subtle::Atomic32 workers_unregistered_during_join_ = 0; |
| #endif |