| Index: third_party/WebKit/Source/platform/scheduler/base/time_domain.h
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/base/time_domain.h b/third_party/WebKit/Source/platform/scheduler/base/time_domain.h
|
| index 52c7678eea23ac5de1257546e25a5172f24ea4fa..88aa5c3ad23a1834f300fd0a93c33943e81b4b3c 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/base/time_domain.h
|
| +++ b/third_party/WebKit/Source/platform/scheduler/base/time_domain.h
|
| @@ -15,6 +15,7 @@
|
| #include "base/time/time.h"
|
| #include "platform/scheduler/base/lazy_now.h"
|
| #include "platform/scheduler/base/task_queue_impl.h"
|
| +#include "wtf/FlatSet.h"
|
|
|
| namespace blink {
|
| namespace scheduler {
|
| @@ -24,6 +25,10 @@ class TaskQueueImpl;
|
| class TaskQueueManager;
|
| class TaskQueueManagerDelegate;
|
|
|
| +std::ostream& operator<<(
|
| + std::ostream& os,
|
| + const std::pair<base::TimeTicks, internal::TaskQueueImpl*>& pair);
|
| +
|
| // The TimeDomain's job is to wake task queues up when their next delayed tasks
|
| // are due to fire. TaskQueues request a wake up via ScheduleDelayedWork, when
|
| // the wake up is due the TimeDomain calls TaskQueue::WakeUpForDelayedWork.
|
| @@ -134,20 +139,10 @@ class BLINK_PLATFORM_EXPORT TimeDomain {
|
| private:
|
| void MoveNewlyUpdatableQueuesIntoUpdatableQueueSet();
|
|
|
| - using DelayedWakeupMultimap =
|
| - std::multimap<base::TimeTicks, internal::TaskQueueImpl*>;
|
| -
|
| - DelayedWakeupMultimap delayed_wakeup_multimap_;
|
| + using DelayedWakeupSet =
|
| + WTF::FlatSet<std::pair<base::TimeTicks, internal::TaskQueueImpl*>>;
|
|
|
| - // This map makes it easy to remove a queue from |delayed_wakeup_multimap_|.
|
| - // NOTE inserting or removing elements from a std::map does not invalidate any
|
| - // iterators.
|
| - using QueueToDelayedWakeupMultimapIteratorMap =
|
| - std::unordered_map<internal::TaskQueueImpl*,
|
| - DelayedWakeupMultimap::iterator>;
|
| -
|
| - QueueToDelayedWakeupMultimapIteratorMap
|
| - queue_to_delayed_wakeup_multimap_iterator_map_;
|
| + DelayedWakeupSet delayed_wakeup_set_;
|
|
|
| // This lock guards only |newly_updatable_|. It's not expected to be heavily
|
| // contended.
|
| @@ -158,6 +153,8 @@ class BLINK_PLATFORM_EXPORT TimeDomain {
|
| // only be accessed from the main thread.
|
| std::set<internal::TaskQueueImpl*> updatable_queue_set_;
|
|
|
| + std::set<internal::TaskQueueImpl*> queues_;
|
| +
|
| Observer* observer_; // NOT OWNED.
|
|
|
| base::ThreadChecker main_thread_checker_;
|
|
|