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..d2471e67156801b79cbddc7ba1fc0dedb90cb232 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 { |
@@ -134,20 +135,10 @@ class BLINK_PLATFORM_EXPORT TimeDomain { |
private: |
void MoveNewlyUpdatableQueuesIntoUpdatableQueueSet(); |
- using DelayedWakeupMultimap = |
- std::multimap<base::TimeTicks, internal::TaskQueueImpl*>; |
+ using DelayedWakeupSet = |
+ WTF::FlatSet<std::pair<base::TimeTicks, internal::TaskQueueImpl*>>; |
- DelayedWakeupMultimap delayed_wakeup_multimap_; |
- |
- // 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 +149,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_; |