Index: Source/platform/scheduler/TracedTask.h |
diff --git a/Source/platform/scheduler/TracedTask.h b/Source/platform/scheduler/TracedTask.h |
index 87f18beec58d5ffefd0d73a249b2ac30771980f6..c21f942b4ca36b139c805c0d10ab90eed8d2c9b2 100644 |
--- a/Source/platform/scheduler/TracedTask.h |
+++ b/Source/platform/scheduler/TracedTask.h |
@@ -21,21 +21,50 @@ namespace blink { |
class TracedTask { |
public: |
+ virtual void run() const = 0; |
+ virtual ~TracedTask(); |
+ |
+protected: |
+ TracedTask(const TraceLocation&, const char* traceName); |
+ void endFlowTraceEvent() const; |
+ |
+ TraceLocation m_location; |
+ const char* m_traceName; |
+ |
+private: |
+ // Declared volatile as it is atomically incremented. |
+ static volatile int s_nextFlowTraceID; |
+ uint64_t m_flowTraceID; |
+}; |
+ |
+class TracedStandardTask : public TracedTask { |
+public: |
typedef Function<void()> Task; |
- void run() const; |
+ virtual void run() const; |
+ virtual ~TracedStandardTask(); |
private: |
friend class Scheduler; |
- TracedTask(const Task&, const TraceLocation&, const char* traceName); |
- // Declared volatile as it is atomically incremented. |
- static volatile int s_nextFlowTraceID; |
+ TracedStandardTask(const Task&, const TraceLocation&, const char* traceName); |
- uint64_t m_flowTraceID; |
Task m_task; |
- TraceLocation m_location; |
- const char* m_traceName; |
+}; |
+ |
+class TracedIdleTask : public TracedTask { |
+public: |
+ typedef Function<void(double deadlineSeconds)> IdleTask; |
Sami
2014/10/03 10:39:22
If we have this, do we need the similar typedef in
rmcilroy
2014/10/03 21:41:21
We do if we want people to be able to postIdleTask
|
+ |
+ virtual void run() const; |
+ virtual ~TracedIdleTask(); |
+ |
+private: |
+ friend class Scheduler; |
Sami
2014/10/03 10:39:22
We're a friend of the Scheduler and they're a frie
rmcilroy
2014/10/03 21:41:21
Removed TracedIdleTask as a friend of Scheduler an
|
+ |
+ TracedIdleTask(const IdleTask&, const TraceLocation&, const char* traceName); |
+ |
+ IdleTask m_idleTask; |
}; |
} // namespace blink |