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

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

Issue 876623002: Adds a CancellableTaskFactory and exposes postLoadingTasks to Blink (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 11 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/Scheduler.cpp
diff --git a/Source/platform/scheduler/Scheduler.cpp b/Source/platform/scheduler/Scheduler.cpp
index 535f114114da747340502f20efd830cbf81440d0..98da04f82f8437f02e52a02d9c93af1833736767 100644
--- a/Source/platform/scheduler/Scheduler.cpp
+++ b/Source/platform/scheduler/Scheduler.cpp
@@ -32,6 +32,25 @@ private:
OwnPtr<Scheduler::IdleTask> m_task;
};
+class ClosureRunner : public WebThread::Task {
rmcilroy 2015/01/26 18:09:01 nit - ClosureRunnerTask (if you take my suggestion
alex clarke (OOO till 29th) 2015/01/27 11:41:19 Done.
+public:
jochen (gone - plz use gerrit) 2015/01/26 15:53:31 non-copyable
alex clarke (OOO till 29th) 2015/01/26 17:00:45 Done.
+ explicit ClosureRunner(PassOwnPtr<Closure> closure) : m_closure(closure)
+ {
+ }
+
+ virtual ~ClosureRunner()
+ {
+ }
+
+ // WebThread::Task implementation.
+ void run() override
+ {
+ (*m_closure)();
+ }
+private:
+ OwnPtr<Closure> m_closure;
+};
+
Scheduler* Scheduler::s_sharedScheduler = nullptr;
void Scheduler::shutdown()
@@ -64,6 +83,12 @@ void Scheduler::postIdleTask(const TraceLocation& location, PassOwnPtr<IdleTask>
m_webScheduler->postIdleTask(WebTraceLocation(location), new IdleTaskRunner(idleTask));
}
+void Scheduler::postLoadingTask(const TraceLocation& location, PassOwnPtr<Closure> closure)
+{
+ if (m_webScheduler)
+ m_webScheduler->postLoadingTask(WebTraceLocation(location), new ClosureRunner(closure));
+}
+
bool Scheduler::shouldYieldForHighPriorityWork() const
{
if (m_webScheduler)

Powered by Google App Engine
This is Rietveld 408576698