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 |