| Index: trunk/src/cc/resources/raster_worker_pool.cc
|
| ===================================================================
|
| --- trunk/src/cc/resources/raster_worker_pool.cc (revision 202735)
|
| +++ trunk/src/cc/resources/raster_worker_pool.cc (working copy)
|
| @@ -10,72 +10,24 @@
|
|
|
| namespace {
|
|
|
| -class RasterWorkerPoolContainerTaskImpl : public internal::WorkerPoolTask {
|
| - public:
|
| - RasterWorkerPoolContainerTaskImpl(
|
| - internal::WorkerPoolTask::TaskVector* dependencies)
|
| - : internal::WorkerPoolTask(dependencies) {
|
| - }
|
| -
|
| - // Overridden from internal::WorkerPoolTask:
|
| - virtual void RunOnThread(unsigned thread_index) OVERRIDE {}
|
| - virtual void DispatchCompletionCallback() OVERRIDE {}
|
| -
|
| - private:
|
| - virtual ~RasterWorkerPoolContainerTaskImpl() {}
|
| -};
|
| -
|
| class RasterWorkerPoolTaskImpl : public internal::WorkerPoolTask {
|
| public:
|
| - RasterWorkerPoolTaskImpl(const base::Closure& callback,
|
| - const RasterWorkerPool::Task::Reply& reply)
|
| - : callback_(callback),
|
| - reply_(reply) {
|
| - }
|
| -
|
| - // Overridden from internal::WorkerPoolTask:
|
| - virtual void RunOnThread(unsigned thread_index) OVERRIDE {
|
| - callback_.Run();
|
| - }
|
| - virtual void DispatchCompletionCallback() OVERRIDE {
|
| - reply_.Run(!HasFinishedRunning());
|
| - }
|
| -
|
| - private:
|
| - virtual ~RasterWorkerPoolTaskImpl() {}
|
| -
|
| - const base::Closure callback_;
|
| - const RasterWorkerPool::Task::Reply reply_;
|
| -};
|
| -
|
| -class RasterWorkerPoolPictureTaskImpl : public internal::WorkerPoolTask {
|
| - public:
|
| - RasterWorkerPoolPictureTaskImpl(
|
| - PicturePileImpl* picture_pile,
|
| - const RasterWorkerPool::PictureTask::Callback& callback,
|
| - const RasterWorkerPool::Task::Reply& reply,
|
| - internal::WorkerPoolTask::TaskVector* dependencies)
|
| - : internal::WorkerPoolTask(dependencies),
|
| + RasterWorkerPoolTaskImpl(PicturePileImpl* picture_pile,
|
| + const RasterWorkerPool::RasterCallback& task,
|
| + const base::Closure& reply)
|
| + : internal::WorkerPoolTask(reply),
|
| picture_pile_(picture_pile),
|
| - callback_(callback),
|
| - reply_(reply) {
|
| + task_(task) {
|
| DCHECK(picture_pile_);
|
| }
|
|
|
| - // Overridden from internal::WorkerPoolTask:
|
| virtual void RunOnThread(unsigned thread_index) OVERRIDE {
|
| - callback_.Run(picture_pile_->GetCloneForDrawingOnThread(thread_index));
|
| + task_.Run(picture_pile_->GetCloneForDrawingOnThread(thread_index));
|
| }
|
| - virtual void DispatchCompletionCallback() OVERRIDE {
|
| - reply_.Run(!HasFinishedRunning());
|
| - }
|
|
|
| private:
|
| - virtual ~RasterWorkerPoolPictureTaskImpl() {}
|
| -
|
| scoped_refptr<PicturePileImpl> picture_pile_;
|
| - const RasterWorkerPool::PictureTask::Callback callback_;
|
| - const RasterWorkerPool::Task::Reply reply_;
|
| + RasterWorkerPool::RasterCallback task_;
|
| };
|
|
|
| const char* kWorkerThreadNamePrefix = "CompositorRaster";
|
| @@ -84,69 +36,23 @@
|
|
|
| } // namespace
|
|
|
| -RasterWorkerPool::Task::Queue::Queue() {
|
| +RasterWorkerPool::RasterWorkerPool(size_t num_threads)
|
| + : WorkerPool(
|
| + num_threads,
|
| + base::TimeDelta::FromMilliseconds(kCheckForCompletedTasksDelayMs),
|
| + kWorkerThreadNamePrefix) {
|
| }
|
|
|
| -RasterWorkerPool::Task::Queue::~Queue() {
|
| -}
|
| -
|
| -void RasterWorkerPool::Task::Queue::Append(const Task& task) {
|
| - DCHECK(!task.is_null());
|
| - tasks_.push_back(task.internal_);
|
| -}
|
| -
|
| -RasterWorkerPool::Task::Task() {
|
| -}
|
| -
|
| -RasterWorkerPool::Task::Task(const base::Closure& callback,
|
| - const Reply& reply)
|
| - : internal_(new RasterWorkerPoolTaskImpl(callback, reply)) {
|
| -}
|
| -
|
| -RasterWorkerPool::Task::Task(Queue* dependencies)
|
| - : internal_(new RasterWorkerPoolContainerTaskImpl(&dependencies->tasks_)) {
|
| -}
|
| -
|
| -RasterWorkerPool::Task::Task(scoped_refptr<internal::WorkerPoolTask> internal)
|
| - : internal_(internal) {
|
| -}
|
| -
|
| -RasterWorkerPool::Task::~Task() {
|
| -}
|
| -
|
| -void RasterWorkerPool::Task::Reset() {
|
| - internal_ = NULL;
|
| -}
|
| -
|
| -RasterWorkerPool::PictureTask::PictureTask(PicturePileImpl* picture_pile,
|
| - const Callback& callback,
|
| - const Reply& reply,
|
| - Task::Queue* dependencies)
|
| - : RasterWorkerPool::Task(
|
| - new RasterWorkerPoolPictureTaskImpl(picture_pile,
|
| - callback,
|
| - reply,
|
| - &dependencies->tasks_)) {
|
| -}
|
| -
|
| -RasterWorkerPool::RasterWorkerPool(size_t num_threads) : WorkerPool(
|
| - num_threads,
|
| - base::TimeDelta::FromMilliseconds(kCheckForCompletedTasksDelayMs),
|
| - kWorkerThreadNamePrefix) {
|
| -}
|
| -
|
| RasterWorkerPool::~RasterWorkerPool() {
|
| }
|
|
|
| -void RasterWorkerPool::Shutdown() {
|
| - // Cancel all previously scheduled tasks.
|
| - WorkerPool::ScheduleTasks(NULL);
|
| -
|
| - WorkerPool::Shutdown();
|
| +void RasterWorkerPool::PostRasterTaskAndReply(PicturePileImpl* picture_pile,
|
| + const RasterCallback& task,
|
| + const base::Closure& reply) {
|
| + PostTask(make_scoped_ptr(new RasterWorkerPoolTaskImpl(
|
| + picture_pile,
|
| + task,
|
| + reply)).PassAs<internal::WorkerPoolTask>());
|
| }
|
|
|
| -void RasterWorkerPool::ScheduleTasks(Task* task) {
|
| - WorkerPool::ScheduleTasks(task ? task->internal_ : NULL);
|
| -}
|
| -
|
| } // namespace cc
|
|
|