 Chromium Code Reviews
 Chromium Code Reviews Issue 2816653003:
  Do not take a MessageLoopForIO in the constructor of TaskTrackerPosix.  (Closed)
    
  
    Issue 2816653003:
  Do not take a MessageLoopForIO in the constructor of TaskTrackerPosix.  (Closed) 
  | 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 70c80054f621a398707331e8d12d8a07fd8c751f..871e1be11d7e883a6956405f3aa52bedbd5ea06e 100644 | 
| --- a/base/task_scheduler/task_scheduler_impl.cc | 
| +++ b/base/task_scheduler/task_scheduler_impl.cc | 
| @@ -15,11 +15,6 @@ | 
| #include "base/task_scheduler/sequence_sort_key.h" | 
| #include "base/task_scheduler/task.h" | 
| #include "base/task_scheduler/task_tracker.h" | 
| -#include "build/build_config.h" | 
| - | 
| -#if defined(OS_POSIX) && !defined(OS_NACL_SFI) | 
| -#include "base/task_scheduler/task_tracker_posix.h" | 
| -#endif | 
| namespace base { | 
| namespace internal { | 
| @@ -134,13 +129,11 @@ int TaskSchedulerImpl::GetMaxConcurrentTasksWithTraitsDeprecated( | 
| void TaskSchedulerImpl::Shutdown() { | 
| // TODO(fdoray): Increase the priority of BACKGROUND tasks blocking shutdown. | 
| - DCHECK(task_tracker_); | 
| - task_tracker_->Shutdown(); | 
| + task_tracker_.Shutdown(); | 
| } | 
| void TaskSchedulerImpl::FlushForTesting() { | 
| - DCHECK(task_tracker_); | 
| - task_tracker_->Flush(); | 
| + task_tracker_.Flush(); | 
| } | 
| void TaskSchedulerImpl::JoinForTesting() { | 
| @@ -176,23 +169,19 @@ void TaskSchedulerImpl::Initialize( | 
| service_thread_options.timer_slack = TIMER_SLACK_MAXIMUM; | 
| CHECK(service_thread_.StartWithOptions(service_thread_options)); | 
| - // Instantiate TaskTracker. Needs to happen after starting the service thread | 
| - // to get its message_loop(). | 
| - task_tracker_ = | 
| #if defined(OS_POSIX) && !defined(OS_NACL_SFI) | 
| - base::MakeUnique<TaskTrackerPosix>( | 
| - static_cast<MessageLoopForIO*>(service_thread_.message_loop())); | 
| -#else | 
| - base::MakeUnique<TaskTracker>(); | 
| + // Needs to happen after starting the service thread to get its | 
| + // message_loop(). | 
| + task_tracker_.Start( | 
| + static_cast<MessageLoopForIO*>(service_thread_.message_loop())); | 
| #endif | 
| 
gab
2017/04/12 19:17:34
Hmmm, not starting non-POSIX TaskTracker too??
 
fdoray
2017/04/13 12:29:08
Renamed Start() -> set_watch_file_descriptor_messa
 | 
| - // Start DelayedTaskManager. Needs to happen after starting the service thread | 
| - // to get its task_runner(). | 
| + // Needs to happen after starting the service thread to get its task_runner(). | 
| delayed_task_manager_.Start(service_thread_.task_runner()); | 
| single_thread_task_runner_manager_ = | 
| MakeUnique<SchedulerSingleThreadTaskRunnerManager>( | 
| - task_tracker_.get(), &delayed_task_manager_); | 
| + &task_tracker_, &delayed_task_manager_); | 
| single_thread_task_runner_manager_->Start(); | 
| // Callback invoked by workers to re-enqueue a sequence in the appropriate | 
| @@ -226,8 +215,7 @@ void TaskSchedulerImpl::Initialize( | 
| worker_pools_[environment_type] = MakeUnique<SchedulerWorkerPoolImpl>( | 
| name_ + kEnvironmentParams[environment_type].name_suffix, | 
| kEnvironmentParams[environment_type].priority_hint, | 
| - re_enqueue_sequence_callback, task_tracker_.get(), | 
| - &delayed_task_manager_); | 
| + re_enqueue_sequence_callback, &task_tracker_, &delayed_task_manager_); | 
| worker_pools_[environment_type]->Start( | 
| *worker_pool_params[environment_type]); | 
| } |