OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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_worker_pool_impl.h" | 5 #include "base/task_scheduler/scheduler_worker_pool_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <utility> | 10 #include <utility> |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 const SchedulerWorker* worker) { | 134 const SchedulerWorker* worker) { |
135 auto it = std::find_if(workers.begin(), workers.end(), | 135 auto it = std::find_if(workers.begin(), workers.end(), |
136 [worker](const scoped_refptr<SchedulerWorker>& i) { | 136 [worker](const scoped_refptr<SchedulerWorker>& i) { |
137 return i.get() == worker; | 137 return i.get() == worker; |
138 }); | 138 }); |
139 return it != workers.end(); | 139 return it != workers.end(); |
140 } | 140 } |
141 | 141 |
142 } // namespace | 142 } // namespace |
143 | 143 |
| 144 // TODO(http://crbug.com/694823): Remove this and supporting framework. |
144 // A task runner that runs tasks with the SINGLE_THREADED ExecutionMode. | 145 // A task runner that runs tasks with the SINGLE_THREADED ExecutionMode. |
145 class SchedulerWorkerPoolImpl::SchedulerSingleThreadTaskRunner : | 146 class SchedulerWorkerPoolImpl::SchedulerSingleThreadTaskRunner : |
146 public SingleThreadTaskRunner { | 147 public SingleThreadTaskRunner { |
147 public: | 148 public: |
148 // Constructs a SchedulerSingleThreadTaskRunner which can be used to post | 149 // Constructs a SchedulerSingleThreadTaskRunner which can be used to post |
149 // tasks so long as |worker_pool| and |worker| are alive. | 150 // tasks so long as |worker_pool| and |worker| are alive. |
150 // TODO(robliao): Find a concrete way to manage the memory of |worker_pool| | 151 // TODO(robliao): Find a concrete way to manage the memory of |worker_pool| |
151 // and |worker|. | 152 // and |worker|. |
152 SchedulerSingleThreadTaskRunner(const TaskTraits& traits, | 153 SchedulerSingleThreadTaskRunner(const TaskTraits& traits, |
153 SchedulerWorkerPool* worker_pool, | 154 SchedulerWorkerPool* worker_pool, |
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
758 AutoSchedulerLock auto_lock(idle_workers_stack_lock_); | 759 AutoSchedulerLock auto_lock(idle_workers_stack_lock_); |
759 idle_workers_stack_.Remove(worker); | 760 idle_workers_stack_.Remove(worker); |
760 } | 761 } |
761 | 762 |
762 bool SchedulerWorkerPoolImpl::CanWorkerDetachForTesting() { | 763 bool SchedulerWorkerPoolImpl::CanWorkerDetachForTesting() { |
763 return !worker_detachment_disallowed_.IsSet(); | 764 return !worker_detachment_disallowed_.IsSet(); |
764 } | 765 } |
765 | 766 |
766 } // namespace internal | 767 } // namespace internal |
767 } // namespace base | 768 } // namespace base |
OLD | NEW |