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

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

Issue 2637843002: Migrate base::TaskRunner from Closure to OnceClosure (Closed)
Patch Set: rebase Created 3 years, 8 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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 class CategorizedWorkerPool::CategorizedWorkerPoolSequencedTaskRunner 46 class CategorizedWorkerPool::CategorizedWorkerPoolSequencedTaskRunner
47 : public base::SequencedTaskRunner { 47 : public base::SequencedTaskRunner {
48 public: 48 public:
49 explicit CategorizedWorkerPoolSequencedTaskRunner( 49 explicit CategorizedWorkerPoolSequencedTaskRunner(
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::Closure 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 RunsTasksOnCurrentThread() 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::Closure task, 64 base::OnceClosure task,
65 base::TimeDelta delay) override { 65 base::TimeDelta delay) override {
66 DCHECK(task); 66 DCHECK(task);
67 base::AutoLock lock(lock_); 67 base::AutoLock lock(lock_);
68 68
69 // Remove completed tasks. 69 // Remove completed tasks.
70 DCHECK(completed_tasks_.empty()); 70 DCHECK(completed_tasks_.empty());
71 task_graph_runner_->CollectCompletedTasks(namespace_token_, 71 task_graph_runner_->CollectCompletedTasks(namespace_token_,
72 &completed_tasks_); 72 &completed_tasks_);
73 73
74 tasks_.erase(tasks_.begin(), tasks_.begin() + completed_tasks_.size()); 74 tasks_.erase(tasks_.begin(), tasks_.begin() + completed_tasks_.size());
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 } 180 }
181 while (!threads_.empty()) { 181 while (!threads_.empty()) {
182 threads_.back()->Join(); 182 threads_.back()->Join();
183 threads_.pop_back(); 183 threads_.pop_back();
184 } 184 }
185 } 185 }
186 186
187 // Overridden from base::TaskRunner: 187 // Overridden from base::TaskRunner:
188 bool CategorizedWorkerPool::PostDelayedTask( 188 bool CategorizedWorkerPool::PostDelayedTask(
189 const tracked_objects::Location& from_here, 189 const tracked_objects::Location& from_here,
190 base::Closure task, 190 base::OnceClosure task,
191 base::TimeDelta delay) { 191 base::TimeDelta delay) {
192 base::AutoLock lock(lock_); 192 base::AutoLock lock(lock_);
193 193
194 // Remove completed tasks. 194 // Remove completed tasks.
195 DCHECK(completed_tasks_.empty()); 195 DCHECK(completed_tasks_.empty());
196 CollectCompletedTasksWithLockAcquired(namespace_token_, &completed_tasks_); 196 CollectCompletedTasksWithLockAcquired(namespace_token_, &completed_tasks_);
197 197
198 cc::Task::Vector::iterator end = std::remove_if( 198 cc::Task::Vector::iterator end = std::remove_if(
199 tasks_.begin(), tasks_.end(), [this](const scoped_refptr<cc::Task>& e) { 199 tasks_.begin(), tasks_.end(), [this](const scoped_refptr<cc::Task>& e) {
200 return std::find(this->completed_tasks_.begin(), 200 return std::find(this->completed_tasks_.begin(),
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 ShouldRunTaskForCategoryWithLockAcquired( 408 ShouldRunTaskForCategoryWithLockAcquired(
409 cc::TASK_CATEGORY_NONCONCURRENT_FOREGROUND)) { 409 cc::TASK_CATEGORY_NONCONCURRENT_FOREGROUND)) {
410 has_ready_to_run_foreground_tasks_cv_.Signal(); 410 has_ready_to_run_foreground_tasks_cv_.Signal();
411 } 411 }
412 412
413 if (ShouldRunTaskForCategoryWithLockAcquired(cc::TASK_CATEGORY_BACKGROUND)) { 413 if (ShouldRunTaskForCategoryWithLockAcquired(cc::TASK_CATEGORY_BACKGROUND)) {
414 has_ready_to_run_background_tasks_cv_.Signal(); 414 has_ready_to_run_background_tasks_cv_.Signal();
415 } 415 }
416 } 416 }
417 417
418 CategorizedWorkerPool::ClosureTask::ClosureTask(base::Closure closure) 418 CategorizedWorkerPool::ClosureTask::ClosureTask(base::OnceClosure closure)
419 : closure_(std::move(closure)) {} 419 : closure_(std::move(closure)) {}
420 420
421 // Overridden from cc::Task: 421 // Overridden from cc::Task:
422 void CategorizedWorkerPool::ClosureTask::RunOnWorkerThread() { 422 void CategorizedWorkerPool::ClosureTask::RunOnWorkerThread() {
423 std::move(closure_).Run(); 423 std::move(closure_).Run();
424 } 424 }
425 425
426 CategorizedWorkerPool::ClosureTask::~ClosureTask() {} 426 CategorizedWorkerPool::ClosureTask::~ClosureTask() {}
427 427
428 } // namespace content 428 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/categorized_worker_pool.h ('k') | content/renderer/render_thread_impl_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698