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

Side by Side Diff: third_party/WebKit/Source/platform/scheduler/child/single_thread_idle_task_runner.cc

Issue 2122543002: Replace Closure in TaskRunner::PostTask with OneShotCallback (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@07_oneshot
Patch Set: fix Created 4 years, 3 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "public/platform/scheduler/child/single_thread_idle_task_runner.h" 5 #include "public/platform/scheduler/child/single_thread_idle_task_runner.h"
6 6
7 #include "base/location.h" 7 #include "base/location.h"
8 #include "base/trace_event/blame_context.h" 8 #include "base/trace_event/blame_context.h"
9 #include "base/trace_event/trace_event.h" 9 #include "base/trace_event/trace_event.h"
10 10
(...skipping 19 matching lines...) Expand all
30 SingleThreadIdleTaskRunner::Delegate::Delegate() {} 30 SingleThreadIdleTaskRunner::Delegate::Delegate() {}
31 31
32 SingleThreadIdleTaskRunner::Delegate::~Delegate() {} 32 SingleThreadIdleTaskRunner::Delegate::~Delegate() {}
33 33
34 bool SingleThreadIdleTaskRunner::RunsTasksOnCurrentThread() const { 34 bool SingleThreadIdleTaskRunner::RunsTasksOnCurrentThread() const {
35 return idle_priority_task_runner_->RunsTasksOnCurrentThread(); 35 return idle_priority_task_runner_->RunsTasksOnCurrentThread();
36 } 36 }
37 37
38 void SingleThreadIdleTaskRunner::PostIdleTask( 38 void SingleThreadIdleTaskRunner::PostIdleTask(
39 const tracked_objects::Location& from_here, 39 const tracked_objects::Location& from_here,
40 const IdleTask& idle_task) { 40 IdleTask idle_task) {
41 delegate_->OnIdleTaskPosted(); 41 delegate_->OnIdleTaskPosted();
42 idle_priority_task_runner_->PostTask( 42 idle_priority_task_runner_->PostTask(
43 from_here, base::Bind(&SingleThreadIdleTaskRunner::RunTask, 43 from_here, base::BindOnce(&SingleThreadIdleTaskRunner::RunTask,
44 weak_scheduler_ptr_, idle_task)); 44 weak_scheduler_ptr_, std::move(idle_task)));
45 } 45 }
46 46
47 void SingleThreadIdleTaskRunner::PostNonNestableIdleTask( 47 void SingleThreadIdleTaskRunner::PostNonNestableIdleTask(
48 const tracked_objects::Location& from_here, 48 const tracked_objects::Location& from_here,
49 const IdleTask& idle_task) { 49 IdleTask idle_task) {
50 delegate_->OnIdleTaskPosted(); 50 delegate_->OnIdleTaskPosted();
51 idle_priority_task_runner_->PostNonNestableTask( 51 idle_priority_task_runner_->PostNonNestableTask(
52 from_here, base::Bind(&SingleThreadIdleTaskRunner::RunTask, 52 from_here, base::BindOnce(&SingleThreadIdleTaskRunner::RunTask,
53 weak_scheduler_ptr_, idle_task)); 53 weak_scheduler_ptr_, std::move(idle_task)));
54 } 54 }
55 55
56 void SingleThreadIdleTaskRunner::RunTask(IdleTask idle_task) { 56 void SingleThreadIdleTaskRunner::RunTask(IdleTask idle_task) {
57 base::TimeTicks deadline = delegate_->WillProcessIdleTask(); 57 base::TimeTicks deadline = delegate_->WillProcessIdleTask();
58 TRACE_EVENT1(tracing_category_, "SingleThreadIdleTaskRunner::RunTask", 58 TRACE_EVENT1(tracing_category_, "SingleThreadIdleTaskRunner::RunTask",
59 "allotted_time_ms", 59 "allotted_time_ms",
60 (deadline - base::TimeTicks::Now()).InMillisecondsF()); 60 (deadline - base::TimeTicks::Now()).InMillisecondsF());
61 if (blame_context_) 61 if (blame_context_)
62 blame_context_->Enter(); 62 blame_context_->Enter();
63 idle_task.Run(deadline); 63 std::move(idle_task).Run(deadline);
64 if (blame_context_) 64 if (blame_context_)
65 blame_context_->Leave(); 65 blame_context_->Leave();
66 delegate_->DidProcessIdleTask(); 66 delegate_->DidProcessIdleTask();
67 } 67 }
68 68
69 void SingleThreadIdleTaskRunner::SetBlameContext( 69 void SingleThreadIdleTaskRunner::SetBlameContext(
70 base::trace_event::BlameContext* blame_context) { 70 base::trace_event::BlameContext* blame_context) {
71 blame_context_ = blame_context; 71 blame_context_ = blame_context;
72 } 72 }
73 73
74 } // namespace scheduler 74 } // namespace scheduler
75 } // namespace blink 75 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698