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

Unified Diff: third_party/WebKit/Source/platform/scheduler/base/time_domain.h

Issue 2396533004: Introduce a FlatMap and FlatSet into WTF (Closed)
Patch Set: Add missing ostream override Created 4 years, 2 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
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_;

Powered by Google App Engine
This is Rietveld 408576698