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 66880a85d4110a0018afd3efdc52c24efb665833..5b90df156d452682949fb24766b5831feaa18907 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/environment_config.h" |
#include "base/task_scheduler/scheduler_worker_pool_params.h" |
@@ -18,10 +17,13 @@ |
namespace base { |
namespace internal { |
-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."); |
@@ -33,7 +35,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_); |
} |
} |
@@ -61,11 +63,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) |
@@ -144,11 +146,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() { |