OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/base/task_queue_manager.h" | 5 #include "platform/scheduler/base/task_queue_manager.h" |
6 | 6 |
7 #include <queue> | 7 #include <queue> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 for (TimeDomain* time_domain : time_domains_) { | 173 for (TimeDomain* time_domain : time_domains_) { |
174 if (time_domain == real_time_domain_.get()) { | 174 if (time_domain == real_time_domain_.get()) { |
175 time_domain->WakeUpReadyDelayedQueues(lazy_now); | 175 time_domain->WakeUpReadyDelayedQueues(lazy_now); |
176 } else { | 176 } else { |
177 LazyNow time_domain_lazy_now = time_domain->CreateLazyNow(); | 177 LazyNow time_domain_lazy_now = time_domain->CreateLazyNow(); |
178 time_domain->WakeUpReadyDelayedQueues(&time_domain_lazy_now); | 178 time_domain->WakeUpReadyDelayedQueues(&time_domain_lazy_now); |
179 } | 179 } |
180 } | 180 } |
181 } | 181 } |
182 | 182 |
183 void TaskQueueManager::OnBeginNestedMessageLoop() { | 183 void TaskQueueManager::OnBeginNestedRunLoop() { |
184 // We just entered a nested message loop, make sure there's a DoWork posted or | 184 // We just entered a nested message loop, make sure there's a DoWork posted or |
185 // the system will grind to a halt. | 185 // the system will grind to a halt. |
186 { | 186 { |
187 base::AutoLock lock(any_thread_lock_); | 187 base::AutoLock lock(any_thread_lock_); |
188 any_thread().immediate_do_work_posted_count++; | 188 any_thread().immediate_do_work_posted_count++; |
189 any_thread().is_nested = true; | 189 any_thread().is_nested = true; |
190 } | 190 } |
191 | 191 |
192 // When a nested message loop starts, task time observers may want to ignore | 192 // When a nested message loop starts, task time observers may want to ignore |
193 // the current task. | 193 // the current task. |
194 for (auto& observer : task_time_observers_) | 194 for (auto& observer : task_time_observers_) |
195 observer.OnBeginNestedMessageLoop(); | 195 observer.OnBeginNestedRunLoop(); |
196 | 196 |
197 delegate_->PostTask(FROM_HERE, immediate_do_work_closure_); | 197 delegate_->PostTask(FROM_HERE, immediate_do_work_closure_); |
198 } | 198 } |
199 | 199 |
200 void TaskQueueManager::OnQueueHasIncomingImmediateWork( | 200 void TaskQueueManager::OnQueueHasIncomingImmediateWork( |
201 internal::TaskQueueImpl* queue, | 201 internal::TaskQueueImpl* queue, |
202 internal::EnqueueOrder enqueue_order, | 202 internal::EnqueueOrder enqueue_order, |
203 bool queue_is_blocked) { | 203 bool queue_is_blocked) { |
204 MoveableAutoLock lock(any_thread_lock_); | 204 MoveableAutoLock lock(any_thread_lock_); |
205 any_thread().has_incoming_immediate_work.insert( | 205 any_thread().has_incoming_immediate_work.insert( |
(...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
711 for (const scoped_refptr<internal::TaskQueueImpl>& queue : queues_) { | 711 for (const scoped_refptr<internal::TaskQueueImpl>& queue : queues_) { |
712 TimeDomain* time_domain = queue->GetTimeDomain(); | 712 TimeDomain* time_domain = queue->GetTimeDomain(); |
713 if (time_domain_now.find(time_domain) == time_domain_now.end()) | 713 if (time_domain_now.find(time_domain) == time_domain_now.end()) |
714 time_domain_now.insert(std::make_pair(time_domain, time_domain->Now())); | 714 time_domain_now.insert(std::make_pair(time_domain, time_domain->Now())); |
715 queue->SweepCanceledDelayedTasks(time_domain_now[time_domain]); | 715 queue->SweepCanceledDelayedTasks(time_domain_now[time_domain]); |
716 } | 716 } |
717 } | 717 } |
718 | 718 |
719 } // namespace scheduler | 719 } // namespace scheduler |
720 } // namespace blink | 720 } // namespace blink |
OLD | NEW |