Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3076)

Unified Diff: base/task_scheduler/task_scheduler_impl.cc

Issue 2810873008: Separate the create and start phases in DelayedTaskManager. (Closed)
Patch Set: self-review Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/task_scheduler/task_scheduler_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 d5c59ba75d6613fe46731f86a16e7d840fb46ab0..7a7786e2f5aad3927d085da1a131275ce30864f1 100644
--- a/base/task_scheduler/task_scheduler_impl.cc
+++ b/base/task_scheduler/task_scheduler_impl.cc
@@ -10,7 +10,6 @@
#include "base/bind_helpers.h"
#include "base/memory/ptr_util.h"
#include "base/task_scheduler/delayed_task_manager.h"
-#include "base/task_scheduler/scheduler_single_thread_task_runner_manager.h"
#include "base/task_scheduler/scheduler_worker_pool_params.h"
#include "base/task_scheduler/sequence_sort_key.h"
#include "base/task_scheduler/task.h"
@@ -99,7 +98,7 @@ TaskSchedulerImpl::CreateSingleThreadTaskRunnerWithTraits(
const auto& environment_params =
kEnvironmentParams[GetEnvironmentIndexForTraits(traits)];
return single_thread_task_runner_manager_
- ->CreateSingleThreadTaskRunnerWithTraits(
+ .CreateSingleThreadTaskRunnerWithTraits(
name_ + environment_params.name_suffix,
environment_params.priority_hint, traits);
}
@@ -109,7 +108,7 @@ scoped_refptr<SingleThreadTaskRunner>
TaskSchedulerImpl::CreateCOMSTATaskRunnerWithTraits(const TaskTraits& traits) {
const auto& environment_params =
kEnvironmentParams[GetEnvironmentIndexForTraits(traits)];
- return single_thread_task_runner_manager_->CreateCOMSTATaskRunnerWithTraits(
+ return single_thread_task_runner_manager_.CreateCOMSTATaskRunnerWithTraits(
environment_params.name_suffix, environment_params.priority_hint, traits);
}
#endif // defined(OS_WIN)
@@ -140,7 +139,7 @@ void TaskSchedulerImpl::JoinForTesting() {
#if DCHECK_IS_ON()
DCHECK(!join_for_testing_returned_.IsSet());
#endif
- single_thread_task_runner_manager_->JoinForTesting();
+ single_thread_task_runner_manager_.JoinForTesting();
for (const auto& worker_pool : worker_pools_)
worker_pool->DisallowWorkerDetachmentForTesting();
for (const auto& worker_pool : worker_pools_)
@@ -152,7 +151,10 @@ void TaskSchedulerImpl::JoinForTesting() {
}
TaskSchedulerImpl::TaskSchedulerImpl(StringPiece name)
- : name_(name), service_thread_("TaskSchedulerServiceThread") {}
+ : name_(name),
+ service_thread_("TaskSchedulerServiceThread"),
+ single_thread_task_runner_manager_(&task_tracker_,
+ &delayed_task_manager_) {}
void TaskSchedulerImpl::Initialize(
const TaskScheduler::InitParams& init_params) {
@@ -177,13 +179,9 @@ void TaskSchedulerImpl::Initialize(
#endif
// Needs to happen after starting the service thread to get its task_runner().
- delayed_task_manager_ =
- base::MakeUnique<DelayedTaskManager>(service_thread_.task_runner());
+ delayed_task_manager_.Start(service_thread_.task_runner());
- single_thread_task_runner_manager_ =
- MakeUnique<SchedulerSingleThreadTaskRunnerManager>(
- &task_tracker_, delayed_task_manager_.get());
- single_thread_task_runner_manager_->Start();
+ single_thread_task_runner_manager_.Start();
// Callback invoked by workers to re-enqueue a sequence in the appropriate
// PriorityQueue.
@@ -216,8 +214,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_,
- delayed_task_manager_.get());
+ re_enqueue_sequence_callback, &task_tracker_, &delayed_task_manager_);
worker_pools_[environment_type]->Start(
*worker_pool_params[environment_type]);
}
« no previous file with comments | « base/task_scheduler/task_scheduler_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698