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

Unified Diff: cc/resources/worker_pool.h

Issue 17351017: Re-land: cc: Add raster finished signals to RasterWorkerPool. (Closed) Base URL: http://git.chromium.org/chromium/src.git@new-graph-build
Patch Set: fix flaky unit tests Created 7 years, 6 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 | « cc/resources/tile_manager_unittest.cc ('k') | cc/resources/worker_pool.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/worker_pool.h
diff --git a/cc/resources/worker_pool.h b/cc/resources/worker_pool.h
index 57bc774c082b8d19307f30e4876f1cba54d0f4b8..01fb625240d669aba56647cf9bf48e018de9dc5f 100644
--- a/cc/resources/worker_pool.h
+++ b/cc/resources/worker_pool.h
@@ -47,6 +47,39 @@ class CC_EXPORT WorkerPoolTask
bool did_complete_;
};
+class CC_EXPORT GraphNode {
+ public:
+ typedef std::vector<GraphNode*> Vector;
+
+ GraphNode(internal::WorkerPoolTask* task, unsigned priority);
+ ~GraphNode();
+
+ WorkerPoolTask* task() { return task_; }
+
+ void add_dependent(GraphNode* dependent) {
+ DCHECK(dependent);
+ dependents_.push_back(dependent);
+ }
+ const Vector& dependents() const { return dependents_; }
+
+ unsigned priority() const { return priority_; }
+
+ unsigned num_dependencies() const { return num_dependencies_; }
+ void add_dependency() { ++num_dependencies_; }
+ void remove_dependency() {
+ DCHECK(num_dependencies_);
+ --num_dependencies_;
+ }
+
+ private:
+ WorkerPoolTask* task_;
+ Vector dependents_;
+ unsigned priority_;
+ unsigned num_dependencies_;
+
+ DISALLOW_COPY_AND_ASSIGN(GraphNode);
+};
+
} // namespace internal
} // namespace cc
@@ -76,49 +109,12 @@ class CC_EXPORT WorkerPool {
virtual void CheckForCompletedTasks();
protected:
- class CC_EXPORT GraphNode {
- public:
- typedef std::vector<GraphNode*> Vector;
-
- GraphNode();
- ~GraphNode();
-
- void set_task(internal::WorkerPoolTask* task) { task_ = task; }
- internal::WorkerPoolTask* task() { return task_; }
-
- void add_dependent(GraphNode* dependent) {
- DCHECK(dependent);
- dependents_.push_back(dependent);
- }
- const Vector& dependents() const {
- return dependents_;
- }
-
- void set_priority(unsigned priority) { priority_ = priority; }
- unsigned priority() const { return priority_; }
-
- unsigned num_dependencies() const {
- return num_dependencies_;
- }
- void add_dependency() { ++num_dependencies_; }
- void remove_dependency() {
- DCHECK(num_dependencies_);
- --num_dependencies_;
- }
-
- private:
- internal::WorkerPoolTask* task_;
- Vector dependents_;
- unsigned priority_;
- unsigned num_dependencies_;
-
- DISALLOW_COPY_AND_ASSIGN(GraphNode);
- };
// A task graph contains a unique set of tasks with edges between
// dependencies pointing in the direction of the dependents. Each task
// need to be assigned a unique priority and a run count that matches
// the number of dependencies.
- typedef ScopedPtrHashMap<internal::WorkerPoolTask*, GraphNode> GraphNodeMap;
+ typedef ScopedPtrHashMap<internal::WorkerPoolTask*, internal::GraphNode>
+ GraphNodeMap;
typedef GraphNodeMap TaskGraph;
WorkerPool(size_t num_threads, const std::string& thread_name_prefix);
« no previous file with comments | « cc/resources/tile_manager_unittest.cc ('k') | cc/resources/worker_pool.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698