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

Unified Diff: third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.cc

Issue 2742383005: [scheduler] Untangle BudgetPool from TaskQueueThrottler. (Closed)
Patch Set: Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.cc
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.cc b/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.cc
index 3219540bcf3ef3b850d4032286fca527694fe0b4..7472c4f97997da471a93988632c33bf31c105cf0 100644
--- a/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.cc
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.cc
@@ -58,39 +58,23 @@ void CPUTimeBudgetPool::SetTimeBudgetRecoveryRate(base::TimeTicks now,
}
void CPUTimeBudgetPool::AddQueue(base::TimeTicks now, TaskQueue* queue) {
- std::pair<TaskQueueThrottler::TaskQueueMap::iterator, bool> insert_result =
- task_queue_throttler_->queue_details_.insert(
- std::make_pair(queue, TaskQueueThrottler::Metadata()));
- TaskQueueThrottler::Metadata& metadata = insert_result.first->second;
- DCHECK(!metadata.time_budget_pool);
- metadata.time_budget_pool = this;
-
+ task_queue_throttler_->AddQueueToBudgetPool(queue, this);
associated_task_queues_.insert(queue);
if (!is_enabled_ || !task_queue_throttler_->IsThrottled(queue))
return;
- queue->InsertFence(TaskQueue::InsertFencePosition::BEGINNING_OF_TIME);
-
- task_queue_throttler_->MaybeSchedulePumpQueue(FROM_HERE, now, queue,
- GetNextAllowedRunTime());
+ task_queue_throttler_->BlockThrottledQueue(now, queue);
}
void CPUTimeBudgetPool::RemoveQueue(base::TimeTicks now, TaskQueue* queue) {
- auto find_it = task_queue_throttler_->queue_details_.find(queue);
- DCHECK(find_it != task_queue_throttler_->queue_details_.end() &&
- find_it->second.time_budget_pool == this);
- find_it->second.time_budget_pool = nullptr;
- bool is_throttled = task_queue_throttler_->IsThrottled(queue);
-
- task_queue_throttler_->MaybeDeleteQueueMetadata(find_it);
+ task_queue_throttler_->RemoveQueueFromBudgetPool(queue, this);
associated_task_queues_.erase(queue);
- if (!is_enabled_ || !is_throttled)
+ if (!is_enabled_ || !task_queue_throttler_->IsThrottled(queue))
return;
- task_queue_throttler_->MaybeSchedulePumpQueue(FROM_HERE, now, queue,
- base::nullopt);
+ task_queue_throttler_->SchedulePumpQueue(FROM_HERE, now, queue);
}
void CPUTimeBudgetPool::EnableThrottling(LazyNow* lazy_now) {
@@ -98,8 +82,7 @@ void CPUTimeBudgetPool::EnableThrottling(LazyNow* lazy_now) {
return;
is_enabled_ = true;
- TRACE_EVENT0(task_queue_throttler_->tracing_category_,
- "CPUTimeBudgetPool_EnableThrottling");
+ TRACE_EVENT0("renderer.scheduler", "CPUTimeBudgetPool_EnableThrottling");
BlockThrottledQueues(lazy_now->Now());
}
@@ -109,15 +92,13 @@ void CPUTimeBudgetPool::DisableThrottling(LazyNow* lazy_now) {
return;
is_enabled_ = false;
- TRACE_EVENT0(task_queue_throttler_->tracing_category_,
- "CPUTimeBudgetPool_DisableThrottling");
+ TRACE_EVENT0("renderer.scheduler", "CPUTimeBudgetPool_DisableThrottling");
for (TaskQueue* queue : associated_task_queues_) {
if (!task_queue_throttler_->IsThrottled(queue))
continue;
- task_queue_throttler_->MaybeSchedulePumpQueue(FROM_HERE, lazy_now->Now(),
- queue, base::nullopt);
+ task_queue_throttler_->SchedulePumpQueue(FROM_HERE, lazy_now->Now(), queue);
}
// TODO(altimin): We need to disable TimeBudgetQueues here or they will
@@ -143,7 +124,7 @@ void CPUTimeBudgetPool::SetReportingCallback(
void CPUTimeBudgetPool::Close() {
DCHECK_EQ(0u, associated_task_queues_.size());
- task_queue_throttler_->time_budget_pools_.erase(this);
+ task_queue_throttler_->UnregisterBudgetPool(this);
}
bool CPUTimeBudgetPool::HasEnoughBudgetToRun(base::TimeTicks now) {
@@ -212,14 +193,8 @@ void CPUTimeBudgetPool::Advance(base::TimeTicks now) {
}
void CPUTimeBudgetPool::BlockThrottledQueues(base::TimeTicks now) {
- for (TaskQueue* queue : associated_task_queues_) {
- if (!task_queue_throttler_->IsThrottled(queue))
- continue;
-
- queue->InsertFence(TaskQueue::InsertFencePosition::BEGINNING_OF_TIME);
- task_queue_throttler_->MaybeSchedulePumpQueue(FROM_HERE, now, queue,
- base::nullopt);
- }
+ for (TaskQueue* queue : associated_task_queues_)
+ task_queue_throttler_->BlockThrottledQueue(now, queue);
}
void CPUTimeBudgetPool::EnforceBudgetLevelRestrictions() {

Powered by Google App Engine
This is Rietveld 408576698