| Index: base/task_scheduler/task_scheduler_impl.cc
|
| diff --git a/base/task_scheduler/task_scheduler_impl.cc b/base/task_scheduler/task_scheduler_impl.cc
|
| index b1b2d36c11696d280c43387a4f209c767f2bb706..6f7181f2e45078e0f9b4a762b0a12c46315ff3df 100644
|
| --- a/base/task_scheduler/task_scheduler_impl.cc
|
| +++ b/base/task_scheduler/task_scheduler_impl.cc
|
| @@ -6,7 +6,6 @@
|
|
|
| #include <utility>
|
|
|
| -#include "base/memory/ptr_util.h"
|
| #include "base/task_scheduler/delayed_task_manager.h"
|
| #include "base/task_scheduler/scheduler_worker_pool_params.h"
|
| #include "base/task_scheduler/sequence.h"
|
| @@ -53,10 +52,13 @@ size_t GetEnvironmentIndexForTraits(const TaskTraits& traits) {
|
|
|
| } // namespace
|
|
|
| -TaskSchedulerImpl::TaskSchedulerImpl(StringPiece name)
|
| +TaskSchedulerImpl::TaskSchedulerImpl(
|
| + StringPiece name,
|
| + std::unique_ptr<TaskTrackerImpl> task_tracker)
|
| : name_(name),
|
| service_thread_("TaskSchedulerServiceThread"),
|
| - single_thread_task_runner_manager_(&task_tracker_,
|
| + task_tracker_(std::move(task_tracker)),
|
| + single_thread_task_runner_manager_(task_tracker_.get(),
|
| &delayed_task_manager_) {
|
| static_assert(arraysize(worker_pools_) == ENVIRONMENT_COUNT,
|
| "The size of |worker_pools_| must match ENVIRONMENT_COUNT.");
|
| @@ -68,7 +70,7 @@ TaskSchedulerImpl::TaskSchedulerImpl(StringPiece name)
|
| ++environment_type) {
|
| worker_pools_[environment_type] = MakeUnique<SchedulerWorkerPoolImpl>(
|
| name_ + kEnvironmentParams[environment_type].name_suffix,
|
| - kEnvironmentParams[environment_type].priority_hint, &task_tracker_,
|
| + kEnvironmentParams[environment_type].priority_hint, task_tracker_.get(),
|
| &delayed_task_manager_);
|
| }
|
| }
|
| @@ -96,11 +98,11 @@ void TaskSchedulerImpl::Start(const TaskScheduler::InitParams& init_params) {
|
| #if defined(OS_POSIX) && !defined(OS_NACL_SFI)
|
| // Needs to happen after starting the service thread to get its
|
| // message_loop().
|
| - task_tracker_.set_watch_file_descriptor_message_loop(
|
| + task_tracker_->set_watch_file_descriptor_message_loop(
|
| static_cast<MessageLoopForIO*>(service_thread_.message_loop()));
|
|
|
| #if DCHECK_IS_ON()
|
| - task_tracker_.set_service_thread_handle(service_thread_.GetThreadHandle());
|
| + task_tracker_->set_service_thread_handle(service_thread_.GetThreadHandle());
|
| #endif // DCHECK_IS_ON()
|
| #endif // defined(OS_POSIX) && !defined(OS_NACL_SFI)
|
|
|
| @@ -179,11 +181,11 @@ int TaskSchedulerImpl::GetMaxConcurrentTasksWithTraitsDeprecated(
|
|
|
| void TaskSchedulerImpl::Shutdown() {
|
| // TODO(fdoray): Increase the priority of BACKGROUND tasks blocking shutdown.
|
| - task_tracker_.Shutdown();
|
| + task_tracker_->Shutdown();
|
| }
|
|
|
| void TaskSchedulerImpl::FlushForTesting() {
|
| - task_tracker_.Flush();
|
| + task_tracker_->Flush();
|
| }
|
|
|
| void TaskSchedulerImpl::JoinForTesting() {
|
|
|