| Index: Source/platform/scheduler/TracedTask.cpp
|
| diff --git a/Source/platform/scheduler/TracedTask.cpp b/Source/platform/scheduler/TracedTask.cpp
|
| index d4e1fa69f78c4535379dfbff2f49e00138acad4f..ba9518cb44ece5f2b6f7c4fb47b5d03acf2882cf 100644
|
| --- a/Source/platform/scheduler/TracedTask.cpp
|
| +++ b/Source/platform/scheduler/TracedTask.cpp
|
| @@ -4,15 +4,45 @@
|
|
|
| #include "config.h"
|
| #include "platform/scheduler/TracedTask.h"
|
| +#include "platform/scheduler/Scheduler.h"
|
|
|
| namespace blink {
|
|
|
| volatile int TracedTask::s_nextFlowTraceID = 0;
|
|
|
| -void TracedTask::run() const
|
| +TracedTask::TracedTask(const TraceLocation& location, const char* traceName)
|
| + : m_location(location)
|
| + , m_traceName(traceName)
|
| +{
|
| + bool tracingEnabled;
|
| + TRACE_EVENT_CATEGORY_GROUP_ENABLED("blink", &tracingEnabled);
|
| +
|
| + if (tracingEnabled) {
|
| + // atomicIncrement is slow so we only do it if tracing is enabled
|
| + m_flowTraceID = static_cast<uint64_t>(atomicIncrement(&s_nextFlowTraceID));
|
| +
|
| + TRACE_EVENT_FLOW_BEGIN2("blink", m_traceName, MANGLE(m_flowTraceID),
|
| + "src_file", m_location.fileName(),
|
| + "src_func", m_location.functionName());
|
| + }
|
| +}
|
| +
|
| +void TracedTask::endFlowTraceEvent() const
|
| {
|
| TRACE_EVENT_FLOW_END0("blink", m_traceName, MANGLE(m_flowTraceID));
|
| +}
|
|
|
| +TracedTask::~TracedTask() { }
|
| +
|
| +TracedStandardTask::TracedStandardTask(const Task& task, const TraceLocation& location, const char* traceName)
|
| + : TracedTask(location, traceName)
|
| + , m_task(task) { }
|
| +
|
| +TracedStandardTask::~TracedStandardTask() { }
|
| +
|
| +void TracedStandardTask::run() const
|
| +{
|
| + endFlowTraceEvent();
|
| TRACE_EVENT2("blink", m_traceName,
|
| "src_file", m_location.fileName(),
|
| "src_func", m_location.functionName());
|
| @@ -20,22 +50,23 @@ void TracedTask::run() const
|
| m_task();
|
| }
|
|
|
| -TracedTask::TracedTask(const Task& task, const TraceLocation& location, const char* traceName)
|
| - : m_task(task)
|
| - , m_location(location)
|
| - , m_traceName(traceName)
|
| +TracedIdleTask::TracedIdleTask(const IdleTask& idleTask, const TraceLocation& location, const char* traceName)
|
| + : TracedTask(location, traceName)
|
| + , m_idleTask(idleTask)
|
| {
|
| - bool tracingEnabled;
|
| - TRACE_EVENT_CATEGORY_GROUP_ENABLED("blink", &tracingEnabled);
|
| + ASSERT(Scheduler::shared());
|
| +}
|
|
|
| - if (tracingEnabled) {
|
| - // atomicIncrement is slow so we only do it if tracing is enabled
|
| - m_flowTraceID = static_cast<uint64_t>(atomicIncrement(&s_nextFlowTraceID));
|
| +TracedIdleTask::~TracedIdleTask() { }
|
|
|
| - TRACE_EVENT_FLOW_BEGIN2("blink", m_traceName, MANGLE(m_flowTraceID),
|
| +void TracedIdleTask::run() const
|
| +{
|
| + endFlowTraceEvent();
|
| + TRACE_EVENT2("blink", m_traceName,
|
| "src_file", m_location.fileName(),
|
| "src_func", m_location.functionName());
|
| - }
|
| +
|
| + m_idleTask(Scheduler::shared()->currentFrameDeadlineSeconds());
|
| }
|
|
|
| } // namespace blink
|
|
|