Index: Source/platform/scheduler/TracedTask.h |
diff --git a/Source/platform/scheduler/TracedTask.h b/Source/platform/scheduler/TracedTask.h |
index 87f18beec58d5ffefd0d73a249b2ac30771980f6..8bc4754561294e58447f193797cb4edb8be5a4e6 100644 |
--- a/Source/platform/scheduler/TracedTask.h |
+++ b/Source/platform/scheduler/TracedTask.h |
@@ -21,23 +21,53 @@ namespace blink { |
class TracedTask { |
Sami
2014/09/24 14:00:40
Note to self: this should probably be renamed as P
rmcilroy
2014/09/29 17:42:58
Acknowledged.
|
public: |
- typedef Function<void()> Task; |
+ virtual void run() const = 0; |
+ virtual ~TracedTask(); |
- void run() const; |
+protected: |
+ TracedTask(const TraceLocation&, const char* traceName); |
+ void traceRun() const; |
private: |
- friend class Scheduler; |
- TracedTask(const Task&, const TraceLocation&, const char* traceName); |
// Declared volatile as it is atomically incremented. |
static volatile int s_nextFlowTraceID; |
uint64_t m_flowTraceID; |
- Task m_task; |
TraceLocation m_location; |
const char* m_traceName; |
}; |
+class TracedStandardTask : public TracedTask { |
+public: |
+ typedef Function<void()> Task; |
+ |
+ virtual void run() const; |
+ virtual ~TracedStandardTask(); |
+ |
+private: |
+ friend class Scheduler; |
+ |
+ TracedStandardTask(const Task&, const TraceLocation&, const char* traceName); |
+ |
+ Task m_task; |
+}; |
+ |
+class TracedIdleTask : public TracedTask { |
+public: |
+ typedef Function<void(double deadlineSeconds)> IdleTask; |
+ |
+ virtual void run() const; |
+ virtual ~TracedIdleTask(); |
+ |
+private: |
+ friend class Scheduler; |
+ |
+ TracedIdleTask(const IdleTask&, const TraceLocation&, const char* traceName); |
+ |
+ IdleTask m_idleTask; |
+}; |
+ |
} // namespace blink |
#endif // TracedTask_h |