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

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

Issue 2546423002: [Try # 3] Scheduler refactoring to virtually eliminate redundant DoWorks (Closed)
Patch Set: Add an extra dcheck Created 3 years, 11 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 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 pump_throttled_tasks_closure_.Reset(base::Bind( 293 pump_throttled_tasks_closure_.Reset(base::Bind(
294 &TaskQueueThrottler::PumpThrottledTasks, weak_factory_.GetWeakPtr())); 294 &TaskQueueThrottler::PumpThrottledTasks, weak_factory_.GetWeakPtr()));
295 forward_immediate_work_callback_ = 295 forward_immediate_work_callback_ =
296 base::Bind(&TaskQueueThrottler::OnTimeDomainHasImmediateWork, 296 base::Bind(&TaskQueueThrottler::OnTimeDomainHasImmediateWork,
297 weak_factory_.GetWeakPtr()); 297 weak_factory_.GetWeakPtr());
298 298
299 renderer_scheduler_->RegisterTimeDomain(time_domain_.get()); 299 renderer_scheduler_->RegisterTimeDomain(time_domain_.get());
300 } 300 }
301 301
302 TaskQueueThrottler::~TaskQueueThrottler() { 302 TaskQueueThrottler::~TaskQueueThrottler() {
303 // If the shutdown has been called we can just bail out.
304 if (!renderer_scheduler_->real_time_domain())
305 return;
303 // It's possible for queues to be still throttled, so we need to tidy up 306 // It's possible for queues to be still throttled, so we need to tidy up
304 // before unregistering the time domain. 307 // before unregistering the time domain.
305 for (const TaskQueueMap::value_type& map_entry : queue_details_) { 308 for (const TaskQueueMap::value_type& map_entry : queue_details_) {
306 TaskQueue* task_queue = map_entry.first; 309 TaskQueue* task_queue = map_entry.first;
307 if (IsThrottled(task_queue)) { 310 if (IsThrottled(task_queue)) {
308 task_queue->SetTimeDomain(renderer_scheduler_->real_time_domain()); 311 task_queue->SetTimeDomain(renderer_scheduler_->real_time_domain());
309 task_queue->RemoveFence(); 312 task_queue->RemoveFence();
310 } 313 }
311 } 314 }
312 315
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 queue->SetTimeDomain(time_domain_.get()); 642 queue->SetTimeDomain(time_domain_.get());
640 MaybeSchedulePumpQueue(FROM_HERE, lazy_now.Now(), queue, 643 MaybeSchedulePumpQueue(FROM_HERE, lazy_now.Now(), queue,
641 GetNextAllowedRunTime(lazy_now.Now(), queue)); 644 GetNextAllowedRunTime(lazy_now.Now(), queue));
642 } 645 }
643 646
644 TRACE_EVENT0(tracing_category_, "TaskQueueThrottler_EnableThrottling"); 647 TRACE_EVENT0(tracing_category_, "TaskQueueThrottler_EnableThrottling");
645 } 648 }
646 649
647 } // namespace scheduler 650 } // namespace scheduler
648 } // namespace blink 651 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698