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

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

Issue 2276353002: Remove after wakeup logic and replace PumpTask with Fences (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Slight simplification 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 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 "platform/scheduler/child/scheduler_helper.h" 5 #include "platform/scheduler/child/scheduler_helper.h"
6 6
7 #include "base/time/default_tick_clock.h" 7 #include "base/time/default_tick_clock.h"
8 #include "base/trace_event/trace_event.h" 8 #include "base/trace_event/trace_event.h"
9 #include "base/trace_event/trace_event_argument.h" 9 #include "base/trace_event/trace_event_argument.h"
10 #include "platform/scheduler/base/task_queue_impl.h" 10 #include "platform/scheduler/base/task_queue_impl.h"
11 #include "platform/scheduler/child/scheduler_tqm_delegate.h" 11 #include "platform/scheduler/child/scheduler_tqm_delegate.h"
12 12
13 namespace blink { 13 namespace blink {
14 namespace scheduler { 14 namespace scheduler {
15 15
16 SchedulerHelper::SchedulerHelper( 16 SchedulerHelper::SchedulerHelper(
17 scoped_refptr<SchedulerTqmDelegate> task_queue_manager_delegate, 17 scoped_refptr<SchedulerTqmDelegate> task_queue_manager_delegate,
18 const char* tracing_category, 18 const char* tracing_category,
19 const char* disabled_by_default_tracing_category, 19 const char* disabled_by_default_tracing_category,
20 const char* disabled_by_default_verbose_tracing_category) 20 const char* disabled_by_default_verbose_tracing_category)
21 : task_queue_manager_delegate_(task_queue_manager_delegate), 21 : task_queue_manager_delegate_(task_queue_manager_delegate),
22 task_queue_manager_( 22 task_queue_manager_(
23 new TaskQueueManager(task_queue_manager_delegate, 23 new TaskQueueManager(task_queue_manager_delegate,
24 tracing_category, 24 tracing_category,
25 disabled_by_default_tracing_category, 25 disabled_by_default_tracing_category,
26 disabled_by_default_verbose_tracing_category)), 26 disabled_by_default_verbose_tracing_category)),
27 control_task_runner_(NewTaskQueue( 27 control_task_runner_(NewTaskQueue(
28 TaskQueue::Spec("control_tq") 28 TaskQueue::Spec("control_tq").SetShouldNotifyObservers(false))),
29 .SetWakeupPolicy(TaskQueue::WakeupPolicy::DONT_WAKE_OTHER_QUEUES)
30 .SetShouldNotifyObservers(false))),
31 control_after_wakeup_task_runner_(NewTaskQueue(
32 TaskQueue::Spec("control_after_wakeup_tq")
33 .SetPumpPolicy(TaskQueue::PumpPolicy::AFTER_WAKEUP)
34 .SetWakeupPolicy(TaskQueue::WakeupPolicy::DONT_WAKE_OTHER_QUEUES)
35 .SetShouldNotifyObservers(false))),
36 default_task_runner_(NewTaskQueue( 29 default_task_runner_(NewTaskQueue(
37 TaskQueue::Spec("default_tq").SetShouldMonitorQuiescence(true))), 30 TaskQueue::Spec("default_tq").SetShouldMonitorQuiescence(true))),
38 observer_(nullptr), 31 observer_(nullptr),
39 tracing_category_(tracing_category), 32 tracing_category_(tracing_category),
40 disabled_by_default_tracing_category_( 33 disabled_by_default_tracing_category_(
41 disabled_by_default_tracing_category) { 34 disabled_by_default_tracing_category) {
42 control_task_runner_->SetQueuePriority(TaskQueue::CONTROL_PRIORITY); 35 control_task_runner_->SetQueuePriority(TaskQueue::CONTROL_PRIORITY);
43 control_after_wakeup_task_runner_->SetQueuePriority(
44 TaskQueue::CONTROL_PRIORITY);
45 36
46 task_queue_manager_->SetWorkBatchSize(4); 37 task_queue_manager_->SetWorkBatchSize(4);
47 38
48 DCHECK(task_queue_manager_delegate_); 39 DCHECK(task_queue_manager_delegate_);
49 task_queue_manager_delegate_->SetDefaultTaskRunner( 40 task_queue_manager_delegate_->SetDefaultTaskRunner(
50 default_task_runner_.get()); 41 default_task_runner_.get());
51 } 42 }
52 43
53 SchedulerHelper::~SchedulerHelper() { 44 SchedulerHelper::~SchedulerHelper() {
54 Shutdown(); 45 Shutdown();
(...skipping 15 matching lines...) Expand all
70 61
71 scoped_refptr<TaskQueue> SchedulerHelper::DefaultTaskRunner() { 62 scoped_refptr<TaskQueue> SchedulerHelper::DefaultTaskRunner() {
72 CheckOnValidThread(); 63 CheckOnValidThread();
73 return default_task_runner_; 64 return default_task_runner_;
74 } 65 }
75 66
76 scoped_refptr<TaskQueue> SchedulerHelper::ControlTaskRunner() { 67 scoped_refptr<TaskQueue> SchedulerHelper::ControlTaskRunner() {
77 return control_task_runner_; 68 return control_task_runner_;
78 } 69 }
79 70
80 scoped_refptr<TaskQueue> SchedulerHelper::ControlAfterWakeUpTaskRunner() {
81 return control_after_wakeup_task_runner_;
82 }
83 71
84 void SchedulerHelper::SetWorkBatchSizeForTesting(size_t work_batch_size) { 72 void SchedulerHelper::SetWorkBatchSizeForTesting(size_t work_batch_size) {
85 CheckOnValidThread(); 73 CheckOnValidThread();
86 DCHECK(task_queue_manager_.get()); 74 DCHECK(task_queue_manager_.get());
87 task_queue_manager_->SetWorkBatchSize(work_batch_size); 75 task_queue_manager_->SetWorkBatchSize(work_batch_size);
88 } 76 }
89 77
90 TaskQueueManager* SchedulerHelper::GetTaskQueueManagerForTesting() { 78 TaskQueueManager* SchedulerHelper::GetTaskQueueManagerForTesting() {
91 CheckOnValidThread(); 79 CheckOnValidThread();
92 return task_queue_manager_.get(); 80 return task_queue_manager_.get();
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 } 156 }
169 157
170 TaskQueue* SchedulerHelper::CurrentlyExecutingTaskQueue() const { 158 TaskQueue* SchedulerHelper::CurrentlyExecutingTaskQueue() const {
171 if (!task_queue_manager_) 159 if (!task_queue_manager_)
172 return nullptr; 160 return nullptr;
173 return task_queue_manager_->currently_executing_task_queue(); 161 return task_queue_manager_->currently_executing_task_queue();
174 } 162 }
175 163
176 } // namespace scheduler 164 } // namespace scheduler
177 } // namespace blink 165 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698