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

Side by Side Diff: third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc

Issue 2840873002: [scheduler] Rename member variables from task_runner_ to task_queue_. (Closed)
Patch Set: 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 "platform/scheduler/renderer/task_queue_throttler.h" 5 #include "platform/scheduler/renderer/task_queue_throttler.h"
6 6
7 #include <cstdint> 7 #include <cstdint>
8 8
9 #include "base/format_macros.h" 9 #include "base/format_macros.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 return base::StringPrintf( 68 return base::StringPrintf(
69 "0x%" PRIx64, 69 "0x%" PRIx64,
70 static_cast<uint64_t>(reinterpret_cast<uintptr_t>(pointer))); 70 static_cast<uint64_t>(reinterpret_cast<uintptr_t>(pointer)));
71 } 71 }
72 72
73 } // namespace 73 } // namespace
74 74
75 TaskQueueThrottler::TaskQueueThrottler( 75 TaskQueueThrottler::TaskQueueThrottler(
76 RendererSchedulerImpl* renderer_scheduler, 76 RendererSchedulerImpl* renderer_scheduler,
77 const char* tracing_category) 77 const char* tracing_category)
78 : task_runner_(renderer_scheduler->ControlTaskQueue()), 78 : control_task_queue_(renderer_scheduler->ControlTaskQueue()),
79 renderer_scheduler_(renderer_scheduler), 79 renderer_scheduler_(renderer_scheduler),
80 tick_clock_(renderer_scheduler->tick_clock()), 80 tick_clock_(renderer_scheduler->tick_clock()),
81 tracing_category_(tracing_category), 81 tracing_category_(tracing_category),
82 time_domain_(new ThrottledTimeDomain(tracing_category)), 82 time_domain_(new ThrottledTimeDomain(tracing_category)),
83 allow_throttling_(true), 83 allow_throttling_(true),
84 weak_factory_(this) { 84 weak_factory_(this) {
85 pump_throttled_tasks_closure_.Reset(base::Bind( 85 pump_throttled_tasks_closure_.Reset(base::Bind(
86 &TaskQueueThrottler::PumpThrottledTasks, weak_factory_.GetWeakPtr())); 86 &TaskQueueThrottler::PumpThrottledTasks, weak_factory_.GetWeakPtr()));
87 forward_immediate_work_callback_ = 87 forward_immediate_work_callback_ =
88 base::Bind(&TaskQueueThrottler::OnQueueNextWakeUpChanged, 88 base::Bind(&TaskQueueThrottler::OnQueueNextWakeUpChanged,
(...skipping 12 matching lines...) Expand all
101 task_queue->RemoveFence(); 101 task_queue->RemoveFence();
102 } 102 }
103 if (map_entry.second.throttling_ref_count != 0) 103 if (map_entry.second.throttling_ref_count != 0)
104 task_queue->SetObserver(nullptr); 104 task_queue->SetObserver(nullptr);
105 } 105 }
106 106
107 renderer_scheduler_->UnregisterTimeDomain(time_domain_.get()); 107 renderer_scheduler_->UnregisterTimeDomain(time_domain_.get());
108 } 108 }
109 109
110 void TaskQueueThrottler::IncreaseThrottleRefCount(TaskQueue* task_queue) { 110 void TaskQueueThrottler::IncreaseThrottleRefCount(TaskQueue* task_queue) {
111 DCHECK_NE(task_queue, task_runner_.get()); 111 DCHECK_NE(task_queue, control_task_queue_.get());
112 112
113 std::pair<TaskQueueMap::iterator, bool> insert_result = 113 std::pair<TaskQueueMap::iterator, bool> insert_result =
114 queue_details_.insert(std::make_pair(task_queue, Metadata())); 114 queue_details_.insert(std::make_pair(task_queue, Metadata()));
115 insert_result.first->second.throttling_ref_count++; 115 insert_result.first->second.throttling_ref_count++;
116 116
117 // If ref_count is 1, the task queue is newly throttled. 117 // If ref_count is 1, the task queue is newly throttled.
118 if (insert_result.first->second.throttling_ref_count != 1) 118 if (insert_result.first->second.throttling_ref_count != 1)
119 return; 119 return;
120 120
121 TRACE_EVENT1(tracing_category_, "TaskQueueThrottler_TaskQueueThrottled", 121 TRACE_EVENT1(tracing_category_, "TaskQueueThrottler_TaskQueueThrottled",
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 // Iterator may have been deleted by BudgetPool::RemoveQueue, so don't 187 // Iterator may have been deleted by BudgetPool::RemoveQueue, so don't
188 // use it here. 188 // use it here.
189 queue_details_.erase(task_queue); 189 queue_details_.erase(task_queue);
190 190
191 // NOTE: Observer is automatically unregistered when unregistering task queue. 191 // NOTE: Observer is automatically unregistered when unregistering task queue.
192 } 192 }
193 193
194 void TaskQueueThrottler::OnQueueNextWakeUpChanged( 194 void TaskQueueThrottler::OnQueueNextWakeUpChanged(
195 TaskQueue* queue, 195 TaskQueue* queue,
196 base::TimeTicks next_wake_up) { 196 base::TimeTicks next_wake_up) {
197 if (!task_runner_->RunsTasksOnCurrentThread()) { 197 if (!control_task_queue_->RunsTasksOnCurrentThread()) {
198 task_runner_->PostTask( 198 control_task_queue_->PostTask(
199 FROM_HERE, 199 FROM_HERE,
200 base::Bind(forward_immediate_work_callback_, queue, next_wake_up)); 200 base::Bind(forward_immediate_work_callback_, queue, next_wake_up));
201 return; 201 return;
202 } 202 }
203 203
204 TRACE_EVENT0(tracing_category_, 204 TRACE_EVENT0(tracing_category_,
205 "TaskQueueThrottler::OnQueueNextWakeUpChanged"); 205 "TaskQueueThrottler::OnQueueNextWakeUpChanged");
206 206
207 // We don't expect this to get called for disabled queues, but we can't DCHECK 207 // We don't expect this to get called for disabled queues, but we can't DCHECK
208 // because of the above thread hop. Just bail out if the queue is disabled. 208 // because of the above thread hop. Just bail out if the queue is disabled.
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 } 296 }
297 297
298 pending_pump_throttled_tasks_runtime_ = runtime; 298 pending_pump_throttled_tasks_runtime_ = runtime;
299 299
300 pump_throttled_tasks_closure_.Cancel(); 300 pump_throttled_tasks_closure_.Cancel();
301 301
302 base::TimeDelta delay = pending_pump_throttled_tasks_runtime_.value() - now; 302 base::TimeDelta delay = pending_pump_throttled_tasks_runtime_.value() - now;
303 TRACE_EVENT1(tracing_category_, 303 TRACE_EVENT1(tracing_category_,
304 "TaskQueueThrottler::MaybeSchedulePumpThrottledTasks", 304 "TaskQueueThrottler::MaybeSchedulePumpThrottledTasks",
305 "delay_till_next_pump_ms", delay.InMilliseconds()); 305 "delay_till_next_pump_ms", delay.InMilliseconds());
306 task_runner_->PostDelayedTask( 306 control_task_queue_->PostDelayedTask(
307 from_here, pump_throttled_tasks_closure_.GetCallback(), delay); 307 from_here, pump_throttled_tasks_closure_.GetCallback(), delay);
308 } 308 }
309 309
310 CPUTimeBudgetPool* TaskQueueThrottler::CreateCPUTimeBudgetPool( 310 CPUTimeBudgetPool* TaskQueueThrottler::CreateCPUTimeBudgetPool(
311 const char* name) { 311 const char* name) {
312 CPUTimeBudgetPool* time_budget_pool = 312 CPUTimeBudgetPool* time_budget_pool =
313 new CPUTimeBudgetPool(name, this, tick_clock_->NowTicks()); 313 new CPUTimeBudgetPool(name, this, tick_clock_->NowTicks());
314 budget_pools_[time_budget_pool] = base::WrapUnique(time_budget_pool); 314 budget_pools_[time_budget_pool] = base::WrapUnique(time_budget_pool);
315 return time_budget_pool; 315 return time_budget_pool;
316 } 316 }
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 queue->InsertFence(TaskQueue::InsertFencePosition::BEGINNING_OF_TIME); 484 queue->InsertFence(TaskQueue::InsertFencePosition::BEGINNING_OF_TIME);
485 queue->SetTimeDomain(time_domain_.get()); 485 queue->SetTimeDomain(time_domain_.get());
486 SchedulePumpQueue(FROM_HERE, lazy_now.Now(), queue); 486 SchedulePumpQueue(FROM_HERE, lazy_now.Now(), queue);
487 } 487 }
488 488
489 TRACE_EVENT0(tracing_category_, "TaskQueueThrottler_EnableThrottling"); 489 TRACE_EVENT0(tracing_category_, "TaskQueueThrottler_EnableThrottling");
490 } 490 }
491 491
492 } // namespace scheduler 492 } // namespace scheduler
493 } // namespace blink 493 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698