Index: cc/tiles/tile_task_manager.cc |
diff --git a/cc/tiles/tile_task_manager.cc b/cc/tiles/tile_task_manager.cc |
index 9f78d388eb4d22808abc89635e94cae88bb49883..7293aa99d7486d83923b3e51747f263c29c12283 100644 |
--- a/cc/tiles/tile_task_manager.cc |
+++ b/cc/tiles/tile_task_manager.cc |
@@ -28,44 +28,25 @@ TileTaskManagerImpl::TileTaskManagerImpl( |
task_graph_runner_(task_graph_runner), |
namespace_token_(task_graph_runner->GetNamespaceToken()) {} |
-TileTaskManagerImpl::~TileTaskManagerImpl() { |
- DCHECK_EQ(0u, completed_tasks_.size()); |
-} |
+TileTaskManagerImpl::~TileTaskManagerImpl() {} |
void TileTaskManagerImpl::ScheduleTasks(TaskGraph* graph) { |
TRACE_EVENT0("cc", "TileTaskManagerImpl::ScheduleTasks"); |
- for (TaskGraph::Node::Vector::iterator it = graph->nodes.begin(); |
- it != graph->nodes.end(); ++it) { |
- TaskGraph::Node& node = *it; |
- TileTask* task = static_cast<TileTask*>(node.task); |
- |
- if (!task->HasBeenScheduled()) { |
- task->WillSchedule(); |
- task->ScheduleOnOriginThread(raster_buffer_provider_.get()); |
- task->DidSchedule(); |
- } |
- } |
- |
raster_buffer_provider_->OrderingBarrier(); |
- |
task_graph_runner_->ScheduleTasks(namespace_token_, graph); |
} |
void TileTaskManagerImpl::CheckForCompletedTasks() { |
TRACE_EVENT0("cc", "TileTaskManagerImpl::CheckForCompletedTasks"); |
+ Task::Vector completed_tasks; |
+ task_graph_runner_->CollectCompletedTasks(namespace_token_, &completed_tasks); |
- task_graph_runner_->CollectCompletedTasks(namespace_token_, |
- &completed_tasks_); |
- for (Task::Vector::const_iterator it = completed_tasks_.begin(); |
- it != completed_tasks_.end(); ++it) { |
- TileTask* task = static_cast<TileTask*>(it->get()); |
- |
- task->WillComplete(); |
- task->CompleteOnOriginThread(raster_buffer_provider_.get()); |
- task->DidComplete(); |
+ for (auto& task : completed_tasks) { |
+ DCHECK(task->state().IsFinished() || task->state().IsCanceled()); |
+ TileTask* tile_task = static_cast<TileTask*>(task.get()); |
+ tile_task->OnTaskCompleted(); |
} |
- completed_tasks_.clear(); |
} |
void TileTaskManagerImpl::Shutdown() { |