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

Side by Side Diff: cc/raster_worker_pool.cc

Issue 12217105: cc: Check for completed raster tasks at interval. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/raster_worker_pool.h" 5 #include "cc/raster_worker_pool.h"
6 6
7 #include "cc/picture_pile_impl.h" 7 #include "cc/picture_pile_impl.h"
8 8
9 namespace cc { 9 namespace cc {
10 10
11 namespace { 11 namespace {
12 12
13 class RasterWorkerPoolTaskImpl : public internal::WorkerPoolTask { 13 class RasterWorkerPoolTaskImpl : public internal::WorkerPoolTask {
14 public: 14 public:
15 RasterWorkerPoolTaskImpl(PicturePileImpl* picture_pile, 15 RasterWorkerPoolTaskImpl(PicturePileImpl* picture_pile,
16 const RasterWorkerPool::RasterCallback& task, 16 const RasterWorkerPool::RasterCallback& task,
17 const base::Closure& reply) 17 const base::Closure& reply)
18 : internal::WorkerPoolTask(reply), 18 : internal::WorkerPoolTask(reply),
19 picture_pile_(picture_pile), 19 picture_pile_(picture_pile),
20 task_(task) { 20 task_(task) {
21 DCHECK(picture_pile_); 21 DCHECK(picture_pile_);
22 } 22 }
23 23
24 virtual void Run(RenderingStats* rendering_stats) OVERRIDE { 24 virtual void Run(RenderingStats* rendering_stats) OVERRIDE {
25 task_.Run(picture_pile_.get(), rendering_stats); 25 task_.Run(picture_pile_.get(), rendering_stats);
26 base::subtle::NoBarrier_Store(&completed_, 1);
brianderson 2013/02/12 01:44:31 I think we need a barrier before setting completed
reveman 2013/02/12 02:29:52 yea, this should already be fixed in patch set 2.
26 } 27 }
27 28
28 private: 29 private:
29 scoped_refptr<PicturePileImpl> picture_pile_; 30 scoped_refptr<PicturePileImpl> picture_pile_;
30 RasterWorkerPool::RasterCallback task_; 31 RasterWorkerPool::RasterCallback task_;
31 }; 32 };
32 33
33 } // namespace 34 } // namespace
34 35
35 RasterWorkerPool::RasterWorkerPool(size_t num_threads) 36 RasterWorkerPool::RasterWorkerPool(size_t num_threads)
(...skipping 12 matching lines...) Expand all
48 picture_pile->GetCloneForDrawingOnThread(worker); 49 picture_pile->GetCloneForDrawingOnThread(worker);
49 50
50 worker->PostTask( 51 worker->PostTask(
51 make_scoped_ptr(new RasterWorkerPoolTaskImpl( 52 make_scoped_ptr(new RasterWorkerPoolTaskImpl(
52 picture_pile_clone.get(), 53 picture_pile_clone.get(),
53 task, 54 task,
54 reply)).PassAs<internal::WorkerPoolTask>()); 55 reply)).PassAs<internal::WorkerPoolTask>());
55 } 56 }
56 57
57 } // namespace cc 58 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698