Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(227)

Side by Side Diff: base/task_scheduler/scheduler_worker_pool_impl.cc

Issue 2258713003: Re-write many calls to WrapUnique() with MakeUnique() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 : traits_(traits), worker_pool_(worker_pool) { 52 : traits_(traits), worker_pool_(worker_pool) {
53 DCHECK(worker_pool_); 53 DCHECK(worker_pool_);
54 } 54 }
55 55
56 // TaskRunner: 56 // TaskRunner:
57 bool PostDelayedTask(const tracked_objects::Location& from_here, 57 bool PostDelayedTask(const tracked_objects::Location& from_here,
58 const Closure& closure, 58 const Closure& closure,
59 TimeDelta delay) override { 59 TimeDelta delay) override {
60 // Post the task as part of a one-off single-task Sequence. 60 // Post the task as part of a one-off single-task Sequence.
61 return worker_pool_->PostTaskWithSequence( 61 return worker_pool_->PostTaskWithSequence(
62 WrapUnique(new Task(from_here, closure, traits_, delay)), 62 MakeUnique<Task>(from_here, closure, traits_, delay),
63 make_scoped_refptr(new Sequence), nullptr); 63 make_scoped_refptr(new Sequence), nullptr);
64 } 64 }
65 65
66 bool RunsTasksOnCurrentThread() const override { 66 bool RunsTasksOnCurrentThread() const override {
67 return tls_current_worker_pool.Get().Get() == worker_pool_; 67 return tls_current_worker_pool.Get().Get() == worker_pool_;
68 } 68 }
69 69
70 private: 70 private:
71 ~SchedulerParallelTaskRunner() override = default; 71 ~SchedulerParallelTaskRunner() override = default;
72 72
(...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 bool SchedulerWorkerPoolImpl::Initialize( 588 bool SchedulerWorkerPoolImpl::Initialize(
589 ThreadPriority priority_hint, 589 ThreadPriority priority_hint,
590 size_t max_threads, 590 size_t max_threads,
591 const ReEnqueueSequenceCallback& re_enqueue_sequence_callback) { 591 const ReEnqueueSequenceCallback& re_enqueue_sequence_callback) {
592 AutoSchedulerLock auto_lock(idle_workers_stack_lock_); 592 AutoSchedulerLock auto_lock(idle_workers_stack_lock_);
593 593
594 DCHECK(workers_.empty()); 594 DCHECK(workers_.empty());
595 595
596 for (size_t i = 0; i < max_threads; ++i) { 596 for (size_t i = 0; i < max_threads; ++i) {
597 std::unique_ptr<SchedulerWorker> worker = SchedulerWorker::Create( 597 std::unique_ptr<SchedulerWorker> worker = SchedulerWorker::Create(
598 priority_hint, WrapUnique(new SchedulerWorkerDelegateImpl( 598 priority_hint, MakeUnique<SchedulerWorkerDelegateImpl>(
599 this, re_enqueue_sequence_callback, 599 this, re_enqueue_sequence_callback,
600 &shared_priority_queue_, static_cast<int>(i))), 600 &shared_priority_queue_, static_cast<int>(i)),
601 task_tracker_, i == 0 ? SchedulerWorker::InitialState::ALIVE 601 task_tracker_, i == 0 ? SchedulerWorker::InitialState::ALIVE
602 : SchedulerWorker::InitialState::DETACHED); 602 : SchedulerWorker::InitialState::DETACHED);
603 if (!worker) 603 if (!worker)
604 break; 604 break;
605 idle_workers_stack_.Push(worker.get()); 605 idle_workers_stack_.Push(worker.get());
606 workers_.push_back(std::move(worker)); 606 workers_.push_back(std::move(worker));
607 } 607 }
608 608
609 #if DCHECK_IS_ON() 609 #if DCHECK_IS_ON()
610 workers_created_.Signal(); 610 workers_created_.Signal();
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 AutoSchedulerLock auto_lock(idle_workers_stack_lock_); 649 AutoSchedulerLock auto_lock(idle_workers_stack_lock_);
650 idle_workers_stack_.Remove(worker); 650 idle_workers_stack_.Remove(worker);
651 } 651 }
652 652
653 bool SchedulerWorkerPoolImpl::CanWorkerDetachForTesting() { 653 bool SchedulerWorkerPoolImpl::CanWorkerDetachForTesting() {
654 return !worker_detachment_disallowed_.IsSet(); 654 return !worker_detachment_disallowed_.IsSet();
655 } 655 }
656 656
657 } // namespace internal 657 } // namespace internal
658 } // namespace base 658 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698