| OLD | NEW |
| 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/base/time_domain.h" | 5 #include "platform/scheduler/base/time_domain.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 | 8 |
| 9 #include "platform/scheduler/base/task_queue_impl.h" | 9 #include "platform/scheduler/base/task_queue_impl.h" |
| 10 #include "platform/scheduler/base/task_queue_manager_delegate.h" | 10 #include "platform/scheduler/base/task_queue_manager_delegate.h" |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 // TODO(alexclarke): Use C++17 extract & insert to more efficiently modify | 92 // TODO(alexclarke): Use C++17 extract & insert to more efficiently modify |
| 93 // |queue_to_delayed_wakeup_multimap_iterator_map_|. | 93 // |queue_to_delayed_wakeup_multimap_iterator_map_|. |
| 94 it->second = delayed_wakeup_multimap_.insert({delayed_run_time, queue}); | 94 it->second = delayed_wakeup_multimap_.insert({delayed_run_time, queue}); |
| 95 } else { | 95 } else { |
| 96 // Insert the wakeup and store the map iterator for later convenience. | 96 // Insert the wakeup and store the map iterator for later convenience. |
| 97 queue_to_delayed_wakeup_multimap_iterator_map_.insert( | 97 queue_to_delayed_wakeup_multimap_iterator_map_.insert( |
| 98 {queue, delayed_wakeup_multimap_.insert({delayed_run_time, queue})}); | 98 {queue, delayed_wakeup_multimap_.insert({delayed_run_time, queue})}); |
| 99 } | 99 } |
| 100 | 100 |
| 101 if (observer_) | 101 if (observer_) |
| 102 observer_->OnTimeDomainHasDelayedWork(); | 102 observer_->OnTimeDomainHasDelayedWork(queue); |
| 103 } | 103 } |
| 104 | 104 |
| 105 void TimeDomain::RegisterAsUpdatableTaskQueue(internal::TaskQueueImpl* queue) { | 105 void TimeDomain::RegisterAsUpdatableTaskQueue(internal::TaskQueueImpl* queue) { |
| 106 { | 106 { |
| 107 base::AutoLock lock(newly_updatable_lock_); | 107 base::AutoLock lock(newly_updatable_lock_); |
| 108 newly_updatable_.push_back(queue); | 108 newly_updatable_.push_back(queue); |
| 109 } | 109 } |
| 110 if (observer_) | 110 if (observer_) |
| 111 observer_->OnTimeDomainHasImmediateWork(); | 111 observer_->OnTimeDomainHasImmediateWork(queue); |
| 112 } | 112 } |
| 113 | 113 |
| 114 bool TimeDomain::UnregisterAsUpdatableTaskQueue( | 114 bool TimeDomain::UnregisterAsUpdatableTaskQueue( |
| 115 internal::TaskQueueImpl* queue) { | 115 internal::TaskQueueImpl* queue) { |
| 116 DCHECK(main_thread_checker_.CalledOnValidThread()); | 116 DCHECK(main_thread_checker_.CalledOnValidThread()); |
| 117 | 117 |
| 118 bool was_updatable = updatable_queue_set_.erase(queue) != 0; | 118 bool was_updatable = updatable_queue_set_.erase(queue) != 0; |
| 119 | 119 |
| 120 base::AutoLock lock(newly_updatable_lock_); | 120 base::AutoLock lock(newly_updatable_lock_); |
| 121 // Remove all copies of |queue| from |newly_updatable_|. | 121 // Remove all copies of |queue| from |newly_updatable_|. |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 213 if (!delayed_wakeup_multimap_.empty()) { | 213 if (!delayed_wakeup_multimap_.empty()) { |
| 214 base::TimeDelta delay = delayed_wakeup_multimap_.begin()->first - Now(); | 214 base::TimeDelta delay = delayed_wakeup_multimap_.begin()->first - Now(); |
| 215 state->SetDouble("next_delay_ms", delay.InMillisecondsF()); | 215 state->SetDouble("next_delay_ms", delay.InMillisecondsF()); |
| 216 } | 216 } |
| 217 AsValueIntoInternal(state); | 217 AsValueIntoInternal(state); |
| 218 state->EndDictionary(); | 218 state->EndDictionary(); |
| 219 } | 219 } |
| 220 | 220 |
| 221 } // namespace scheduler | 221 } // namespace scheduler |
| 222 } // namespace blink | 222 } // namespace blink |
| OLD | NEW |