Index: components/scheduler/base/time_domain.cc |
diff --git a/components/scheduler/base/time_domain.cc b/components/scheduler/base/time_domain.cc |
index 825812e43744907799923364dfc5c182a29548ec..2abfb522ce86f0d788285b03eb3127d4f1f56de9 100644 |
--- a/components/scheduler/base/time_domain.cc |
+++ b/components/scheduler/base/time_domain.cc |
@@ -12,7 +12,7 @@ |
namespace scheduler { |
-TimeDomain::TimeDomain() : weak_factory_(this) {} |
+TimeDomain::TimeDomain() {} |
TimeDomain::~TimeDomain() {} |
@@ -31,7 +31,7 @@ void TimeDomain::UnregisterQueue(internal::TaskQueueImpl* queue) { |
} |
} |
- // |newly_updatable_| might contain |task_queue|, we use |
+ // |newly_updatable_| might contain |queue|, we use |
// MoveNewlyUpdatableQueuesIntoUpdatableQueueSet to flush it out. |
MoveNewlyUpdatableQueuesIntoUpdatableQueueSet(); |
updatable_queue_set_.erase(queue); |
@@ -66,12 +66,12 @@ void TimeDomain::ScheduleDelayedWork(internal::TaskQueueImpl* queue, |
base::TimeTicks delayed_run_time, |
LazyNow* lazy_now) { |
DCHECK(main_thread_checker_.CalledOnValidThread()); |
- // Dedupe wakeups. |
- if (delayed_wakeup_multimap_.find(delayed_run_time) == |
- delayed_wakeup_multimap_.end()) { |
+ |
+ if (delayed_wakeup_multimap_.empty() || |
+ delayed_run_time < delayed_wakeup_multimap_.begin()->first) { |
base::TimeDelta delay = |
std::max(base::TimeDelta(), delayed_run_time - lazy_now->Now()); |
- RequestWakeup(delay); |
+ RequestWakeup(lazy_now, delay); |
} |
delayed_wakeup_multimap_.insert(std::make_pair(delayed_run_time, queue)); |
} |