Chromium Code Reviews| Index: base/task_scheduler/scheduler_worker_pool_impl.cc |
| diff --git a/base/task_scheduler/scheduler_worker_pool_impl.cc b/base/task_scheduler/scheduler_worker_pool_impl.cc |
| index dc040301ca31af4868522b3983b112f293e0d28e..ea39a6bf7e383685f2d78dcb29a7732e0de1d341 100644 |
| --- a/base/task_scheduler/scheduler_worker_pool_impl.cc |
| +++ b/base/task_scheduler/scheduler_worker_pool_impl.cc |
| @@ -698,12 +698,15 @@ bool SchedulerWorkerPoolImpl::Initialize( |
| DCHECK(workers_.empty()); |
| for (size_t i = 0; i < max_threads; ++i) { |
| + // The SchedulerWorker on top of the idle stack is initially ALIVE. |
|
robliao
2016/10/12 20:22:17
Oops! Nice catch.
I would drive this home even mo
fdoray
2016/10/12 21:18:44
Done.
|
| + const SchedulerWorker::InitialState initial_state = |
| + (i == max_threads - 1) ? SchedulerWorker::InitialState::ALIVE |
| + : SchedulerWorker::InitialState::DETACHED; |
| std::unique_ptr<SchedulerWorker> worker = SchedulerWorker::Create( |
| priority_hint, MakeUnique<SchedulerWorkerDelegateImpl>( |
| this, re_enqueue_sequence_callback, |
| &shared_priority_queue_, static_cast<int>(i)), |
| - task_tracker_, i == 0 ? SchedulerWorker::InitialState::ALIVE |
| - : SchedulerWorker::InitialState::DETACHED); |
| + task_tracker_, initial_state); |
| if (!worker) |
| break; |
| idle_workers_stack_.Push(worker.get()); |