Index: cc/resources/worker_pool.cc |
diff --git a/cc/resources/worker_pool.cc b/cc/resources/worker_pool.cc |
index c2dba6c974adc701c03fc7cb5335904001be5fc3..b4e96f62b063a4b50a8d4a6b82d1c24c1731a1d5 100644 |
--- a/cc/resources/worker_pool.cc |
+++ b/cc/resources/worker_pool.cc |
@@ -64,6 +64,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 |
@@ -90,8 +99,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. |
if (a->priority() != b->priority()) |
return a->priority() > b->priority(); |
@@ -125,8 +134,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_; |
@@ -216,11 +225,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(); |
} |
} |
@@ -243,7 +254,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()); |
@@ -336,11 +347,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(); |
// Task is ready if it has no dependencies. Add it to |
@@ -359,15 +372,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), |