Index: cc/resources/raster_worker_pool_perftest.cc |
diff --git a/cc/resources/raster_worker_pool_perftest.cc b/cc/resources/raster_worker_pool_perftest.cc |
index 70e667ac7d179e7a0dfa239a464193a29f45ca79..c76ec43bd392e096544e80aab078495aa9a8c333 100644 |
--- a/cc/resources/raster_worker_pool_perftest.cc |
+++ b/cc/resources/raster_worker_pool_perftest.cc |
@@ -129,41 +129,8 @@ class RasterWorkerPoolPerfTest |
: public testing::TestWithParam<RasterWorkerPoolType>, |
public RasterWorkerPoolClient { |
public: |
- class Task : public RasterWorkerPool::Task { |
- public: |
- typedef std::vector<Task> Vector; |
- |
- static Task Create() { return Task(new PerfWorkerPoolTaskImpl); } |
- |
- void AppendTo(internal::WorkerPoolTask::Vector* dependencies) const { |
- dependencies->push_back(internal_); |
- } |
- |
- private: |
- explicit Task(internal::WorkerPoolTask* task) |
- : RasterWorkerPool::Task(task) {} |
- }; |
- |
- class RasterTask : public RasterWorkerPool::RasterTask { |
- public: |
- typedef std::vector<RasterTask> Vector; |
- |
- static RasterTask Create(scoped_ptr<ScopedResource> resource, |
- const Task::Vector& image_decode_tasks) { |
- internal::WorkerPoolTask::Vector dependencies; |
- for (Task::Vector::const_iterator it = image_decode_tasks.begin(); |
- it != image_decode_tasks.end(); |
- ++it) |
- it->AppendTo(&dependencies); |
- |
- return RasterTask( |
- new PerfRasterWorkerPoolTaskImpl(resource.Pass(), &dependencies)); |
- } |
- |
- private: |
- explicit RasterTask(internal::RasterWorkerPoolTask* task) |
- : RasterWorkerPool::RasterTask(task) {} |
- }; |
+ typedef std::vector<scoped_refptr<internal::RasterWorkerPoolTask> > |
+ RasterTaskVector; |
RasterWorkerPoolPerfTest() |
: context_provider_(TestContextProvider::Create()), |
@@ -220,15 +187,17 @@ class RasterWorkerPoolPerfTest |
base::MessageLoop::current()->Run(); |
} |
- void CreateImageDecodeTasks(unsigned num_image_decode_tasks, |
- Task::Vector* image_decode_tasks) { |
+ void CreateImageDecodeTasks( |
+ unsigned num_image_decode_tasks, |
+ internal::WorkerPoolTask::Vector* image_decode_tasks) { |
for (unsigned i = 0; i < num_image_decode_tasks; ++i) |
- image_decode_tasks->push_back(Task::Create()); |
+ image_decode_tasks->push_back(new PerfWorkerPoolTaskImpl); |
} |
- void CreateRasterTasks(unsigned num_raster_tasks, |
- const Task::Vector& image_decode_tasks, |
- RasterTask::Vector* raster_tasks) { |
+ void CreateRasterTasks( |
+ unsigned num_raster_tasks, |
+ const internal::WorkerPoolTask::Vector& image_decode_tasks, |
+ RasterTaskVector* raster_tasks) { |
const gfx::Size size(1, 1); |
for (unsigned i = 0; i < num_raster_tasks; ++i) { |
@@ -236,29 +205,30 @@ class RasterWorkerPoolPerfTest |
ScopedResource::Create(resource_provider_.get())); |
resource->Allocate(size, ResourceProvider::TextureUsageAny, RGBA_8888); |
+ internal::WorkerPoolTask::Vector dependencies = image_decode_tasks; |
raster_tasks->push_back( |
- RasterTask::Create(resource.Pass(), image_decode_tasks)); |
+ new PerfRasterWorkerPoolTaskImpl(resource.Pass(), &dependencies)); |
} |
} |
- void BuildTaskQueue(RasterWorkerPool::RasterTask::Queue* tasks, |
- const RasterTask::Vector& raster_tasks) { |
- for (RasterTask::Vector::const_iterator it = raster_tasks.begin(); |
+ void BuildTaskQueue(RasterTaskQueue* queue, |
+ const RasterTaskVector& raster_tasks) { |
+ for (RasterTaskVector::const_iterator it = raster_tasks.begin(); |
it != raster_tasks.end(); |
++it) |
- tasks->Append(*it, false); |
+ queue->items.push_back(RasterTaskQueue::Item(it->get(), false)); |
} |
void RunScheduleTasksTest(const std::string& test_name, |
unsigned num_raster_tasks, |
unsigned num_image_decode_tasks) { |
- Task::Vector image_decode_tasks; |
- RasterTask::Vector raster_tasks; |
+ internal::WorkerPoolTask::Vector image_decode_tasks; |
+ RasterTaskVector raster_tasks; |
CreateImageDecodeTasks(num_image_decode_tasks, &image_decode_tasks); |
CreateRasterTasks(num_raster_tasks, image_decode_tasks, &raster_tasks); |
// Avoid unnecessary heap allocations by reusing the same queue. |
- RasterWorkerPool::RasterTask::Queue queue; |
+ RasterTaskQueue queue; |
timer_.Reset(); |
do { |
@@ -269,7 +239,7 @@ class RasterWorkerPoolPerfTest |
timer_.NextLap(); |
} while (!timer_.HasTimeLimitExpired()); |
- RasterWorkerPool::RasterTask::Queue empty; |
+ RasterTaskQueue empty; |
raster_worker_pool_->ScheduleTasks(&empty); |
RunMessageLoopUntilAllTasksHaveCompleted(); |
@@ -285,8 +255,8 @@ class RasterWorkerPoolPerfTest |
unsigned num_raster_tasks, |
unsigned num_image_decode_tasks) { |
const size_t kNumVersions = 2; |
- Task::Vector image_decode_tasks[kNumVersions]; |
- RasterTask::Vector raster_tasks[kNumVersions]; |
+ internal::WorkerPoolTask::Vector image_decode_tasks[kNumVersions]; |
+ RasterTaskVector raster_tasks[kNumVersions]; |
for (size_t i = 0; i < kNumVersions; ++i) { |
CreateImageDecodeTasks(num_image_decode_tasks, &image_decode_tasks[i]); |
CreateRasterTasks( |
@@ -294,7 +264,7 @@ class RasterWorkerPoolPerfTest |
} |
// Avoid unnecessary heap allocations by reusing the same queue. |
- RasterWorkerPool::RasterTask::Queue queue; |
+ RasterTaskQueue queue; |
size_t count = 0; |
timer_.Reset(); |
@@ -307,7 +277,7 @@ class RasterWorkerPoolPerfTest |
timer_.NextLap(); |
} while (!timer_.HasTimeLimitExpired()); |
- RasterWorkerPool::RasterTask::Queue empty; |
+ RasterTaskQueue empty; |
raster_worker_pool_->ScheduleTasks(&empty); |
RunMessageLoopUntilAllTasksHaveCompleted(); |
@@ -322,13 +292,13 @@ class RasterWorkerPoolPerfTest |
void RunScheduleAndExecuteTasksTest(const std::string& test_name, |
unsigned num_raster_tasks, |
unsigned num_image_decode_tasks) { |
- Task::Vector image_decode_tasks; |
- RasterTask::Vector raster_tasks; |
+ internal::WorkerPoolTask::Vector image_decode_tasks; |
+ RasterTaskVector raster_tasks; |
CreateImageDecodeTasks(num_image_decode_tasks, &image_decode_tasks); |
CreateRasterTasks(num_raster_tasks, image_decode_tasks, &raster_tasks); |
// Avoid unnecessary heap allocations by reusing the same queue. |
- RasterWorkerPool::RasterTask::Queue queue; |
+ RasterTaskQueue queue; |
timer_.Reset(); |
do { |
@@ -339,7 +309,7 @@ class RasterWorkerPoolPerfTest |
timer_.NextLap(); |
} while (!timer_.HasTimeLimitExpired()); |
- RasterWorkerPool::RasterTask::Queue empty; |
+ RasterTaskQueue empty; |
raster_worker_pool_->ScheduleTasks(&empty); |
RunMessageLoopUntilAllTasksHaveCompleted(); |