OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 "base/task_scheduler/scheduler_single_thread_task_runner_manager.h" | 5 #include "base/task_scheduler/scheduler_single_thread_task_runner_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <memory> | 8 #include <memory> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 DCHECK(task_tracker_); | 222 DCHECK(task_tracker_); |
223 DCHECK(delayed_task_manager_); | 223 DCHECK(delayed_task_manager_); |
224 } | 224 } |
225 | 225 |
226 SchedulerSingleThreadTaskRunnerManager:: | 226 SchedulerSingleThreadTaskRunnerManager:: |
227 ~SchedulerSingleThreadTaskRunnerManager() { | 227 ~SchedulerSingleThreadTaskRunnerManager() { |
228 #if DCHECK_IS_ON() | 228 #if DCHECK_IS_ON() |
229 size_t workers_unregistered_during_join = | 229 size_t workers_unregistered_during_join = |
230 subtle::NoBarrier_Load(&workers_unregistered_during_join_); | 230 subtle::NoBarrier_Load(&workers_unregistered_during_join_); |
231 DCHECK_EQ(workers_unregistered_during_join, workers_.size()) | 231 DCHECK_EQ(workers_unregistered_during_join, workers_.size()) |
232 << "There cannot be outstanding SingleThreadTaskRunners upon destruction" | 232 << "There cannot be outstanding SingleThreadTaskRunners upon destruction " |
233 "of SchedulerSingleThreadTaskRunnerManager or the Task Scheduler"; | 233 "of SchedulerSingleThreadTaskRunnerManager or the Task Scheduler"; |
234 #endif | 234 #endif |
235 } | 235 } |
236 | 236 |
237 scoped_refptr<SingleThreadTaskRunner> | 237 scoped_refptr<SingleThreadTaskRunner> |
238 SchedulerSingleThreadTaskRunnerManager::CreateSingleThreadTaskRunnerWithTraits( | 238 SchedulerSingleThreadTaskRunnerManager::CreateSingleThreadTaskRunnerWithTraits( |
239 const TaskTraits& traits) { | 239 const TaskTraits& traits) { |
240 size_t index = worker_pool_index_for_traits_callback_.Run(traits); | 240 size_t index = worker_pool_index_for_traits_callback_.Run(traits); |
241 DCHECK_LT(index, worker_pool_params_vector_.size()); | 241 DCHECK_LT(index, worker_pool_params_vector_.size()); |
242 return new SchedulerSingleThreadTaskRunner( | 242 return new SchedulerSingleThreadTaskRunner( |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 }); | 299 }); |
300 DCHECK(worker_iter != workers_.end()); | 300 DCHECK(worker_iter != workers_.end()); |
301 worker_to_destroy = std::move(*worker_iter); | 301 worker_to_destroy = std::move(*worker_iter); |
302 workers_.erase(worker_iter); | 302 workers_.erase(worker_iter); |
303 } | 303 } |
304 worker_to_destroy->Cleanup(); | 304 worker_to_destroy->Cleanup(); |
305 } | 305 } |
306 | 306 |
307 } // namespace internal | 307 } // namespace internal |
308 } // namespace base | 308 } // namespace base |
OLD | NEW |