Index: components/scheduler/base/task_queue_manager.cc |
diff --git a/components/scheduler/base/task_queue_manager.cc b/components/scheduler/base/task_queue_manager.cc |
index b9df8756bf6a916d067286a2edb7b3866b753b9e..ec478db612e58792dba99b166fee5cbf8a633efb 100644 |
--- a/components/scheduler/base/task_queue_manager.cc |
+++ b/components/scheduler/base/task_queue_manager.cc |
@@ -21,7 +21,8 @@ TaskQueueManager::TaskQueueManager( |
const char* tracing_category, |
const char* disabled_by_default_tracing_category, |
const char* disabled_by_default_verbose_tracing_category) |
- : delegate_(delegate), |
+ : real_time_domain_(new RealTimeDomain()), |
+ delegate_(delegate), |
task_was_run_on_quiescence_monitored_queue_(false), |
pending_dowork_count_(0), |
work_batch_size_(1), |
@@ -44,8 +45,7 @@ TaskQueueManager::TaskQueueManager( |
base::Bind(&TaskQueueManager::DoWork, weak_factory_.GetWeakPtr(), false); |
// TODO(alexclarke): Change this to be a parameter that's passed in. |
- real_time_domain_ = make_scoped_refptr(new RealTimeDomain()); |
- RegisterTimeDomain(real_time_domain_); |
+ RegisterTimeDomain(real_time_domain_.get()); |
} |
TaskQueueManager::~TaskQueueManager() { |
@@ -58,15 +58,13 @@ TaskQueueManager::~TaskQueueManager() { |
selector_.SetTaskQueueSelectorObserver(nullptr); |
} |
-void TaskQueueManager::RegisterTimeDomain( |
- const scoped_refptr<TimeDomain>& time_domain) { |
+void TaskQueueManager::RegisterTimeDomain(TimeDomain* time_domain) { |
time_domains_.insert(time_domain); |
time_domain->OnRegisterWithTaskQueueManager(delegate_.get(), |
do_work_closure_); |
} |
-void TaskQueueManager::UnregisterTimeDomain( |
- const scoped_refptr<TimeDomain>& time_domain) { |
+void TaskQueueManager::UnregisterTimeDomain(TimeDomain* time_domain) { |
time_domains_.erase(time_domain); |
} |
@@ -77,8 +75,7 @@ scoped_refptr<internal::TaskQueueImpl> TaskQueueManager::NewTaskQueue( |
DCHECK(main_thread_checker_.CalledOnValidThread()); |
TimeDomain* time_domain = |
spec.time_domain ? spec.time_domain : real_time_domain_.get(); |
- DCHECK(time_domains_.find(make_scoped_refptr(time_domain)) != |
- time_domains_.end()); |
+ DCHECK(time_domains_.find(time_domain) != time_domains_.end()); |
scoped_refptr<internal::TaskQueueImpl> queue( |
make_scoped_refptr(new internal::TaskQueueImpl( |
this, time_domain, spec, disabled_by_default_tracing_category_, |
@@ -115,7 +112,7 @@ void TaskQueueManager::UpdateWorkQueues( |
TRACE_EVENT0(disabled_by_default_tracing_category_, |
"TaskQueueManager::UpdateWorkQueues"); |
- for (const scoped_refptr<TimeDomain>& time_domain : time_domains_) { |
+ for (TimeDomain* time_domain : time_domains_) { |
time_domain->UpdateWorkQueues(should_trigger_wakeup, previous_task); |
} |
} |
@@ -189,7 +186,7 @@ void TaskQueueManager::DoWork(bool decrement_pending_dowork_count) { |
bool TaskQueueManager::TryAdvanceTimeDomains() { |
bool can_advance = false; |
- for (const scoped_refptr<TimeDomain>& time_domain : time_domains_) { |
+ for (TimeDomain* time_domain : time_domains_) { |
can_advance |= time_domain->MaybeAdvanceTime(); |
} |
return can_advance; |