Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1522)

Unified Diff: Source/platform/scheduler/TracedTask.cpp

Issue 595023002: Implement idle task scheduling. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rename estimatedNextBeginFrameSeconds Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/platform/scheduler/TracedTask.cpp
diff --git a/Source/platform/scheduler/TracedTask.cpp b/Source/platform/scheduler/TracedTask.cpp
index d4e1fa69f78c4535379dfbff2f49e00138acad4f..30fd4549706519681580aa6b62abae6a995b9d59 100644
--- a/Source/platform/scheduler/TracedTask.cpp
+++ b/Source/platform/scheduler/TracedTask.cpp
@@ -4,25 +4,14 @@
#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
-{
- TRACE_EVENT_FLOW_END0("blink", m_traceName, MANGLE(m_flowTraceID));
-
- TRACE_EVENT2("blink", m_traceName,
- "src_file", m_location.fileName(),
- "src_func", m_location.functionName());
-
- m_task();
-}
-
-TracedTask::TracedTask(const Task& task, const TraceLocation& location, const char* traceName)
- : m_task(task)
- , m_location(location)
+TracedTask::TracedTask(const TraceLocation& location, const char* traceName)
+ : m_location(location)
, m_traceName(traceName)
{
bool tracingEnabled;
@@ -38,4 +27,56 @@ TracedTask::TracedTask(const Task& task, const TraceLocation& location, const ch
}
}
+TraceLocation TracedTask::getLocation() const
+{
+ return m_location;
+}
+
+const char* TracedTask::getTraceName() const
+{
+ return m_traceName;
+}
+
+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", getTraceName(),
+ "src_file", getLocation().fileName(),
+ "src_func", getLocation().functionName());
+
+ m_task();
+}
+
+TracedIdleTask::TracedIdleTask(const IdleTask& idleTask, const TraceLocation& location, const char* traceName)
+ : TracedTask(location, traceName)
+ , m_idleTask(idleTask)
+{
+ ASSERT(Scheduler::shared());
+}
+
+TracedIdleTask::~TracedIdleTask() { }
+
+void TracedIdleTask::run() const
+{
+ endFlowTraceEvent();
+ TRACE_EVENT2("blink", getTraceName(),
+ "src_file", getLocation().fileName(),
+ "src_func", getLocation().functionName());
+
+ m_idleTask(Scheduler::shared()->currentFrameDeadlineForIdleTasks());
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698