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

Unified Diff: trunk/src/cc/resources/raster_worker_pool.cc

Issue 16178002: Revert 202363 "cc: Cancel and re-prioritize worker pool tasks." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 7 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
« no previous file with comments | « trunk/src/cc/resources/raster_worker_pool.h ('k') | trunk/src/cc/resources/resource_provider.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « trunk/src/cc/resources/raster_worker_pool.h ('k') | trunk/src/cc/resources/resource_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698