Chromium Code Reviews| Index: Source/platform/scheduler/Scheduler.h |
| diff --git a/Source/platform/scheduler/Scheduler.h b/Source/platform/scheduler/Scheduler.h |
| index 2467766d4857b3f0e13684574993d0670f2a8e3a..e9afcee99be231cbf79fb8b84decb52311d4bf85 100644 |
| --- a/Source/platform/scheduler/Scheduler.h |
| +++ b/Source/platform/scheduler/Scheduler.h |
| @@ -18,6 +18,8 @@ class WebThread; |
| namespace blink { |
| +typedef long long unsigned FlowTraceID; |
|
Sami
2014/08/20 14:20:57
Probably better to use int64_t for this. Actually,
picksi1
2014/08/29 14:11:28
Changed to an int so keep atomicincrement happy
|
| + |
| // The scheduler is an opinionated gateway for arranging work to be run on the |
| // main thread. It decides which tasks get priority over others based on a |
| // scheduling policy and the overall system state. |
| @@ -37,6 +39,7 @@ public: |
| void postInputTask(const TraceLocation&, const Task&); |
| void postCompositorTask(const TraceLocation&, const Task&); |
| void postTask(const TraceLocation&, const Task&); // For generic (low priority) tasks. |
| + |
| void postIdleTask(const TraceLocation&, const IdleTask&); // For non-critical tasks which may be reordered relative to other task types. |
| // Returns true if there is high priority work pending on the main thread |
| @@ -60,10 +63,10 @@ private: |
| ~Scheduler(); |
| void scheduleIdleTask(const TraceLocation&, const IdleTask&); |
| - |
| static void sharedTimerAdapter(); |
| void tickSharedTimer(); |
| + |
| bool hasPendingHighPriorityWork() const; |
| void runHighPriorityTasks(); |
| @@ -71,15 +74,27 @@ private: |
| class TracedTask { |
| public: |
| - TracedTask(const Task& task, const TraceLocation& location) |
| - : m_task(task) |
| - , m_location(location) { } |
| + |
| + enum Type { |
| + Compositor, |
| + Input, |
| + MainThread, |
| + TypeCount |
| + }; |
| + |
| + TracedTask(const Task&, const TraceLocation&, Type); |
| + static void setTypeName(Type, char const*); |
| void run(); |
| + FlowTraceID m_FlowTraceID; |
|
Sami
2014/08/20 14:20:57
s/m_FlowTraceID/m_flowTraceID/
picksi1
2014/08/29 14:11:28
This is no longer static in latest version
|
| + |
| private: |
| Task m_task; |
| TraceLocation m_location; |
| + Type m_type; |
|
Sami
2014/08/20 14:20:57
Instead of having a type enum, could we just pass
picksi1
2014/08/29 14:11:28
Done.
|
| + static FlowTraceID s_NextFlowTraceID; |
| + static char const* s_typeNames[Type::TypeCount]; |
| }; |
| // Should only be accessed from the main thread. |