Index: Source/platform/scheduler/TracedTask.h |
diff --git a/Source/platform/scheduler/TracedTask.h b/Source/platform/scheduler/TracedTask.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..87f18beec58d5ffefd0d73a249b2ac30771980f6 |
--- /dev/null |
+++ b/Source/platform/scheduler/TracedTask.h |
@@ -0,0 +1,43 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef TracedTask_h |
+#define TracedTask_h |
+ |
+#include "platform/Task.h" |
+#include "platform/TraceEvent.h" |
+#include "platform/TraceLocation.h" |
+ |
+namespace blink { |
+ |
+#ifdef MANGLE_COMPILES_ON_WIN_OK |
+// TODO: Once win version compiles correctly when using TRACE_ID_MANGLE remove |
+// the ifdef to always mangle |
+#define MANGLE(id) TRACE_ID_MANGLE(id) |
+#else |
+#define MANGLE(id) (id) |
+#endif |
+ |
+class TracedTask { |
+public: |
+ typedef Function<void()> Task; |
+ |
+ void run() 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; |
+}; |
+ |
+} // namespace blink |
+ |
+#endif // TracedTask_h |