| 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 |