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

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

Issue 2590593002: Revert of [Reland] Scheduler refactoring to virtually eliminate redundant DoWorks (Closed)
Patch Set: Created 4 years 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 : SchedulerHelper(task_queue_manager_delegate,
22 tracing_category,
23 disabled_by_default_tracing_category,
24 disabled_by_default_verbose_tracing_category,
25 TaskQueue::Spec(TaskQueue::QueueType::DEFAULT)
26 .SetShouldMonitorQuiescence(true)) {}
27
28 SchedulerHelper::SchedulerHelper(
29 scoped_refptr<SchedulerTqmDelegate> task_queue_manager_delegate,
30 const char* tracing_category,
31 const char* disabled_by_default_tracing_category,
32 const char* disabled_by_default_verbose_tracing_category,
33 TaskQueue::Spec default_task_queue_spec)
34 : task_queue_manager_delegate_(task_queue_manager_delegate), 21 : task_queue_manager_delegate_(task_queue_manager_delegate),
35 task_queue_manager_( 22 task_queue_manager_(
36 new TaskQueueManager(task_queue_manager_delegate, 23 new TaskQueueManager(task_queue_manager_delegate,
37 tracing_category, 24 tracing_category,
38 disabled_by_default_tracing_category, 25 disabled_by_default_tracing_category,
39 disabled_by_default_verbose_tracing_category)), 26 disabled_by_default_verbose_tracing_category)),
40 control_task_runner_( 27 control_task_runner_(
41 NewTaskQueue(TaskQueue::Spec(TaskQueue::QueueType::CONTROL) 28 NewTaskQueue(TaskQueue::Spec(TaskQueue::QueueType::CONTROL)
42 .SetShouldNotifyObservers(false))), 29 .SetShouldNotifyObservers(false))),
43 default_task_runner_(NewTaskQueue(default_task_queue_spec)), 30 default_task_runner_(
31 NewTaskQueue(TaskQueue::Spec(TaskQueue::QueueType::DEFAULT)
32 .SetShouldMonitorQuiescence(true))),
44 observer_(nullptr), 33 observer_(nullptr),
45 tracing_category_(tracing_category), 34 tracing_category_(tracing_category),
46 disabled_by_default_tracing_category_( 35 disabled_by_default_tracing_category_(
47 disabled_by_default_tracing_category) { 36 disabled_by_default_tracing_category) {
48 control_task_runner_->SetQueuePriority(TaskQueue::CONTROL_PRIORITY); 37 control_task_runner_->SetQueuePriority(TaskQueue::CONTROL_PRIORITY);
49 38
50 task_queue_manager_->SetWorkBatchSize(4); 39 task_queue_manager_->SetWorkBatchSize(4);
51 40
52 DCHECK(task_queue_manager_delegate_); 41 DCHECK(task_queue_manager_delegate_);
53 task_queue_manager_delegate_->SetDefaultTaskRunner( 42 task_queue_manager_delegate_->SetDefaultTaskRunner(
54 default_task_runner_.get()); 43 default_task_runner_.get());
55 } 44 }
56 45
57 SchedulerHelper::~SchedulerHelper() { 46 SchedulerHelper::~SchedulerHelper() {
58 Shutdown(); 47 Shutdown();
59 } 48 }
60 49
61 void SchedulerHelper::Shutdown() { 50 void SchedulerHelper::Shutdown() {
62 CheckOnValidThread(); 51 CheckOnValidThread();
63 if (task_queue_manager_) 52 if (task_queue_manager_)
64 task_queue_manager_->SetObserver(nullptr); 53 task_queue_manager_->SetObserver(nullptr);
65 task_queue_manager_.reset(); 54 task_queue_manager_.reset();
66 task_queue_manager_delegate_->RestoreDefaultTaskRunner(); 55 task_queue_manager_delegate_->RestoreDefaultTaskRunner();
67 } 56 }
68 57
69 void SchedulerHelper::SetRecordTaskDelayHistograms(
70 bool record_task_delay_histograms) {
71 if (!task_queue_manager_)
72 return;
73
74 task_queue_manager_->SetRecordTaskDelayHistograms(
75 record_task_delay_histograms);
76 }
77
78 scoped_refptr<TaskQueue> SchedulerHelper::NewTaskQueue( 58 scoped_refptr<TaskQueue> SchedulerHelper::NewTaskQueue(
79 const TaskQueue::Spec& spec) { 59 const TaskQueue::Spec& spec) {
80 DCHECK(task_queue_manager_.get()); 60 DCHECK(task_queue_manager_.get());
81 return task_queue_manager_->NewTaskQueue(spec); 61 return task_queue_manager_->NewTaskQueue(spec);
82 } 62 }
83 63
84 scoped_refptr<TaskQueue> SchedulerHelper::DefaultTaskRunner() { 64 scoped_refptr<TaskQueue> SchedulerHelper::DefaultTaskRunner() {
85 CheckOnValidThread(); 65 CheckOnValidThread();
86 return default_task_runner_; 66 return default_task_runner_;
87 } 67 }
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 } 161 }
182 162
183 TaskQueue* SchedulerHelper::CurrentlyExecutingTaskQueue() const { 163 TaskQueue* SchedulerHelper::CurrentlyExecutingTaskQueue() const {
184 if (!task_queue_manager_) 164 if (!task_queue_manager_)
185 return nullptr; 165 return nullptr;
186 return task_queue_manager_->currently_executing_task_queue(); 166 return task_queue_manager_->currently_executing_task_queue();
187 } 167 }
188 168
189 } // namespace scheduler 169 } // namespace scheduler
190 } // namespace blink 170 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698