| Index: content/renderer/raster_worker_pool.h
|
| diff --git a/content/renderer/raster_worker_pool.h b/content/renderer/raster_worker_pool.h
|
| index 1b7cfb1b54320dc848c6806a48ca2356a30bf5c6..1d6fc04ca6719ed8fd22f34093b7a35d3c8b4814 100644
|
| --- a/content/renderer/raster_worker_pool.h
|
| +++ b/content/renderer/raster_worker_pool.h
|
| @@ -13,6 +13,7 @@
|
| #include "base/synchronization/condition_variable.h"
|
| #include "base/task_runner.h"
|
| #include "base/threading/simple_thread.h"
|
| +#include "cc/raster/task_category.h"
|
| #include "cc/raster/task_graph_runner.h"
|
| #include "cc/raster/task_graph_work_queue.h"
|
| #include "content/common/content_export.h"
|
| @@ -27,10 +28,8 @@ namespace content {
|
| // parallel with other instances of sequenced task runners.
|
| // 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 base::DelegateSimpleThread::Delegate {
|
| +class CONTENT_EXPORT RasterWorkerPool : public base::TaskRunner,
|
| + public cc::TaskGraphRunner {
|
| public:
|
| RasterWorkerPool();
|
|
|
| @@ -47,8 +46,9 @@ class CONTENT_EXPORT RasterWorkerPool
|
| void CollectCompletedTasks(cc::NamespaceToken token,
|
| cc::Task::Vector* completed_tasks) override;
|
|
|
| - // Overridden from base::DelegateSimpleThread::Delegate:
|
| - void Run() 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 FlushForTesting();
|
|
|
| @@ -75,9 +75,13 @@ class CONTENT_EXPORT RasterWorkerPool
|
| class RasterWorkerPoolSequencedTaskRunner;
|
| friend class RasterWorkerPoolSequencedTaskRunner;
|
|
|
| - // Run next task. Caller must acquire |lock_| prior to calling this function.
|
| - // Returns true if there was a task available to run.
|
| - bool RunTaskWithLockAcquired();
|
| + // 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);
|
| +
|
| + // 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);
|
|
|
| // Simple Task for the TaskGraphRunner that wraps a closure.
|
| // This class is used to schedule TaskRunner tasks on the
|
| @@ -104,7 +108,7 @@ class CONTENT_EXPORT RasterWorkerPool
|
| cc::Task::Vector* completed_tasks);
|
|
|
| // The actual threads where work is done.
|
| - ScopedVector<base::DelegateSimpleThread> threads_;
|
| + std::vector<scoped_ptr<base::SimpleThread>> threads_;
|
|
|
| // Lock to exclusively access all the following members that are used to
|
| // implement the TaskRunner and TaskGraphRunner interfaces.
|
|
|