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

Side by Side Diff: content/renderer/categorized_worker_pool.cc

Issue 2823103003: Introduce TaskRunner::RunsTasksInCurrentSequence() (Closed)
Patch Set: rebase Created 3 years, 7 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "content/renderer/categorized_worker_pool.h" 5 #include "content/renderer/categorized_worker_pool.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 cc::TaskGraphRunner* task_graph_runner) 50 cc::TaskGraphRunner* task_graph_runner)
51 : task_graph_runner_(task_graph_runner), 51 : task_graph_runner_(task_graph_runner),
52 namespace_token_(task_graph_runner->GenerateNamespaceToken()) {} 52 namespace_token_(task_graph_runner->GenerateNamespaceToken()) {}
53 53
54 // Overridden from base::TaskRunner: 54 // Overridden from base::TaskRunner:
55 bool PostDelayedTask(const tracked_objects::Location& from_here, 55 bool PostDelayedTask(const tracked_objects::Location& from_here,
56 base::OnceClosure task, 56 base::OnceClosure task,
57 base::TimeDelta delay) override { 57 base::TimeDelta delay) override {
58 return PostNonNestableDelayedTask(from_here, std::move(task), delay); 58 return PostNonNestableDelayedTask(from_here, std::move(task), delay);
59 } 59 }
60 bool RunsTasksOnCurrentThread() const override { return true; } 60 bool RunsTasksInCurrentSequence() const override { return true; }
61 61
62 // Overridden from base::SequencedTaskRunner: 62 // Overridden from base::SequencedTaskRunner:
63 bool PostNonNestableDelayedTask(const tracked_objects::Location& from_here, 63 bool PostNonNestableDelayedTask(const tracked_objects::Location& from_here,
64 base::OnceClosure task, 64 base::OnceClosure task,
65 base::TimeDelta delay) override { 65 base::TimeDelta delay) override {
66 // Use CHECK instead of DCHECK to crash earlier. See http://crbug.com/711167 66 // Use CHECK instead of DCHECK to crash earlier. See http://crbug.com/711167
67 // for details. 67 // for details.
68 CHECK(task); 68 CHECK(task);
69 base::AutoLock lock(lock_); 69 base::AutoLock lock(lock_);
70 70
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 graph_.nodes.push_back( 213 graph_.nodes.push_back(
214 cc::TaskGraph::Node(graph_task.get(), cc::TASK_CATEGORY_FOREGROUND, 214 cc::TaskGraph::Node(graph_task.get(), cc::TASK_CATEGORY_FOREGROUND,
215 0u /* priority */, 0u /* dependencies */)); 215 0u /* priority */, 0u /* dependencies */));
216 } 216 }
217 217
218 ScheduleTasksWithLockAcquired(namespace_token_, &graph_); 218 ScheduleTasksWithLockAcquired(namespace_token_, &graph_);
219 completed_tasks_.clear(); 219 completed_tasks_.clear();
220 return true; 220 return true;
221 } 221 }
222 222
223 bool CategorizedWorkerPool::RunsTasksOnCurrentThread() const { 223 bool CategorizedWorkerPool::RunsTasksInCurrentSequence() const {
224 return true; 224 return true;
225 } 225 }
226 226
227 void CategorizedWorkerPool::Run( 227 void CategorizedWorkerPool::Run(
228 const std::vector<cc::TaskCategory>& categories, 228 const std::vector<cc::TaskCategory>& categories,
229 base::ConditionVariable* has_ready_to_run_tasks_cv) { 229 base::ConditionVariable* has_ready_to_run_tasks_cv) {
230 base::AutoLock lock(lock_); 230 base::AutoLock lock(lock_);
231 231
232 while (true) { 232 while (true) {
233 if (!RunTaskWithLockAcquired(categories)) { 233 if (!RunTaskWithLockAcquired(categories)) {
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 : closure_(std::move(closure)) {} 421 : closure_(std::move(closure)) {}
422 422
423 // Overridden from cc::Task: 423 // Overridden from cc::Task:
424 void CategorizedWorkerPool::ClosureTask::RunOnWorkerThread() { 424 void CategorizedWorkerPool::ClosureTask::RunOnWorkerThread() {
425 std::move(closure_).Run(); 425 std::move(closure_).Run();
426 } 426 }
427 427
428 CategorizedWorkerPool::ClosureTask::~ClosureTask() {} 428 CategorizedWorkerPool::ClosureTask::~ClosureTask() {}
429 429
430 } // namespace content 430 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698