Index: content/renderer/raster_worker_pool.h |
diff --git a/content/renderer/raster_worker_pool.h b/content/renderer/raster_worker_pool.h |
index b4ddf9a61c251e6f759400ccff94266941a2f604..e26d6ed5cccc482450da6dfbf85a14e06abdc6d5 100644 |
--- a/content/renderer/raster_worker_pool.h |
+++ b/content/renderer/raster_worker_pool.h |
@@ -29,7 +29,8 @@ namespace content { |
// It's also possible to get the underlying TaskGraphRunner to schedule a graph |
// of tasks with their dependencies. |
class CONTENT_EXPORT RasterWorkerPool : public base::TaskRunner, |
- public cc::TaskGraphRunner { |
+ public cc::TaskGraphRunner, |
+ public cc::TaskGraphWorkQueueClient { |
public: |
RasterWorkerPool(); |
@@ -46,9 +47,17 @@ class CONTENT_EXPORT RasterWorkerPool : public base::TaskRunner, |
void CollectCompletedTasks(cc::NamespaceToken token, |
cc::Task::Vector* completed_tasks) override; |
+ // TODO(prashant.n): Move this to separate class to control workers |
+ // efficiently. |
+ // Overridden from cc::TaskGraphWorkQueueClient: |
+ void AdjustWorkerPriorityForTask(cc::Task* task, |
+ uint16_t old_category, |
+ uint16_t new_category) override; |
+ |
// Runs a task from one of the provided categories. Categories listed first |
// have higher priority. |
- void Run(const std::vector<cc::TaskCategory>& categories, |
+ void Run(cc::TaskWorker* worker, |
+ const std::vector<cc::TaskCategory>& categories, |
base::ConditionVariable* has_ready_to_run_tasks_cv); |
void FlushForTesting(); |
@@ -101,11 +110,13 @@ class CONTENT_EXPORT RasterWorkerPool : public base::TaskRunner, |
// Runs a task from one of the provided categories. Categories listed first |
// have higher priority. Returns false if there were no tasks to run. |
- bool RunTaskWithLockAcquired(const std::vector<cc::TaskCategory>& categories); |
+ bool RunTaskWithLockAcquired(cc::TaskWorker* worker, |
+ const std::vector<cc::TaskCategory>& categories); |
// Run next task for the given category. Caller must acquire |lock_| prior to |
// calling this function and make sure at least one task is ready to run. |
- void RunTaskInCategoryWithLockAcquired(cc::TaskCategory category); |
+ void RunTaskInCategoryWithLockAcquired(cc::TaskWorker* worker, |
+ cc::TaskCategory category); |
// Helper function which signals worker threads if tasks are ready to run. |
void SignalHasReadyToRunTasksWithLockAcquired(); |
@@ -116,7 +127,7 @@ class CONTENT_EXPORT RasterWorkerPool : public base::TaskRunner, |
bool ShouldRunTaskForCategoryWithLockAcquired(cc::TaskCategory category); |
// The actual threads where work is done. |
- std::vector<scoped_ptr<base::SimpleThread>> threads_; |
+ std::vector<scoped_ptr<base::DynamicPriorityThread>> threads_; |
// Lock to exclusively access all the following members that are used to |
// implement the TaskRunner and TaskGraphRunner interfaces. |