Index: cc/resources/worker_pool.cc |
diff --git a/cc/resources/worker_pool.cc b/cc/resources/worker_pool.cc |
index 90e30328cec071092fd60976e27c04aff408a3b3..c1342d157e89450566811231d0e06a9a7e3611bc 100644 |
--- a/cc/resources/worker_pool.cc |
+++ b/cc/resources/worker_pool.cc |
@@ -69,6 +69,15 @@ bool WorkerPoolTask::HasCompleted() const { |
return did_complete_; |
} |
+GraphNode::GraphNode(internal::WorkerPoolTask* task, unsigned priority) |
+ : task_(task), |
+ priority_(priority), |
+ num_dependencies_(0) { |
+} |
+ |
+GraphNode::~GraphNode() { |
+} |
+ |
} // namespace internal |
// Internal to the worker pool. Any data or logic that needs to be |
@@ -95,8 +104,8 @@ class WorkerPool::Inner : public base::DelegateSimpleThread::Delegate { |
private: |
class PriorityComparator { |
public: |
- bool operator()(const GraphNode* a, |
- const GraphNode* b) { |
+ bool operator()(const internal::GraphNode* a, |
+ const internal::GraphNode* b) { |
// In this system, numerically lower priority is run first. |
return a->priority() > b->priority(); |
} |
@@ -126,8 +135,8 @@ class WorkerPool::Inner : public base::DelegateSimpleThread::Delegate { |
GraphNodeMap pending_tasks_; |
// Ordered set of tasks that are ready to run. |
- typedef std::priority_queue<GraphNode*, |
- std::vector<GraphNode*>, |
+ typedef std::priority_queue<internal::GraphNode*, |
+ std::vector<internal::GraphNode*>, |
PriorityComparator> TaskQueue; |
TaskQueue ready_to_run_tasks_; |
@@ -214,11 +223,13 @@ void WorkerPool::Inner::SetTaskGraph(TaskGraph* graph) { |
it != completed_tasks_.end(); ++it) { |
internal::WorkerPoolTask* task = it->get(); |
- scoped_ptr<GraphNode> node = new_pending_tasks.take_and_erase(task); |
+ scoped_ptr<internal::GraphNode> node = new_pending_tasks.take_and_erase( |
+ task); |
if (node) { |
- for (GraphNode::Vector::const_iterator it = node->dependents().begin(); |
+ for (internal::GraphNode::Vector::const_iterator it = |
+ node->dependents().begin(); |
it != node->dependents().end(); ++it) { |
- GraphNode* dependent_node = *it; |
+ internal::GraphNode* dependent_node = *it; |
dependent_node->remove_dependency(); |
} |
} |
@@ -251,7 +262,7 @@ void WorkerPool::Inner::SetTaskGraph(TaskGraph* graph) { |
it != new_pending_tasks.end(); ++it) { |
internal::WorkerPoolTask* task = it->first; |
DCHECK(task); |
- GraphNode* node = it->second; |
+ internal::GraphNode* node = it->second; |
// Completed tasks should not exist in |new_pending_tasks|. |
DCHECK(!task->HasFinishedRunning()); |
@@ -338,11 +349,13 @@ void WorkerPool::Inner::Run() { |
// Now iterate over all dependents to remove dependency and check |
// if they are ready to run. |
- scoped_ptr<GraphNode> node = running_tasks_.take_and_erase(task.get()); |
+ scoped_ptr<internal::GraphNode> node = running_tasks_.take_and_erase( |
+ task.get()); |
if (node) { |
- for (GraphNode::Vector::const_iterator it = node->dependents().begin(); |
+ for (internal::GraphNode::Vector::const_iterator it = |
+ node->dependents().begin(); |
it != node->dependents().end(); ++it) { |
- GraphNode* dependent_node = *it; |
+ internal::GraphNode* dependent_node = *it; |
dependent_node->remove_dependency(); |
// Dependent is not ready unless number of dependencies are 0. |
@@ -363,15 +376,6 @@ void WorkerPool::Inner::Run() { |
has_ready_to_run_tasks_cv_.Signal(); |
} |
-WorkerPool::GraphNode::GraphNode() |
- : task_(NULL), |
- priority_(0), |
- num_dependencies_(0) { |
-} |
- |
-WorkerPool::GraphNode::~GraphNode() { |
-} |
- |
WorkerPool::WorkerPool(size_t num_threads, |
const std::string& thread_name_prefix) |
: in_dispatch_completion_callbacks_(false), |