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

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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 : traits_(traits), worker_pool_(worker_pool) { 54 : traits_(traits), worker_pool_(worker_pool) {
55 DCHECK(worker_pool_); 55 DCHECK(worker_pool_);
56 } 56 }
57 57
58 // TaskRunner: 58 // TaskRunner:
59 bool PostDelayedTask(const tracked_objects::Location& from_here, 59 bool PostDelayedTask(const tracked_objects::Location& from_here,
60 const Closure& closure, 60 const Closure& closure,
61 TimeDelta delay) override { 61 TimeDelta delay) override {
62 // Post the task as part of a one-off single-task Sequence. 62 // Post the task as part of a one-off single-task Sequence.
63 return worker_pool_->PostTaskWithSequence( 63 return worker_pool_->PostTaskWithSequence(
64 WrapUnique(new Task(from_here, closure, traits_, delay)), 64 MakeUnique<Task>(from_here, closure, traits_, delay),
65 make_scoped_refptr(new Sequence), nullptr); 65 make_scoped_refptr(new Sequence), nullptr);
66 } 66 }
67 67
68 bool RunsTasksOnCurrentThread() const override { 68 bool RunsTasksOnCurrentThread() const override {
69 return tls_current_worker_pool.Get().Get() == worker_pool_; 69 return tls_current_worker_pool.Get().Get() == worker_pool_;
70 } 70 }
71 71
72 private: 72 private:
73 ~SchedulerParallelTaskRunner() override = default; 73 ~SchedulerParallelTaskRunner() override = default;
74 74
(...skipping 561 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 bool SchedulerWorkerPoolImpl::Initialize( 636 bool SchedulerWorkerPoolImpl::Initialize(
637 ThreadPriority priority_hint, 637 ThreadPriority priority_hint,
638 size_t max_threads, 638 size_t max_threads,
639 const ReEnqueueSequenceCallback& re_enqueue_sequence_callback) { 639 const ReEnqueueSequenceCallback& re_enqueue_sequence_callback) {
640 AutoSchedulerLock auto_lock(idle_workers_stack_lock_); 640 AutoSchedulerLock auto_lock(idle_workers_stack_lock_);
641 641
642 DCHECK(workers_.empty()); 642 DCHECK(workers_.empty());
643 643
644 for (size_t i = 0; i < max_threads; ++i) { 644 for (size_t i = 0; i < max_threads; ++i) {
645 std::unique_ptr<SchedulerWorker> worker = SchedulerWorker::Create( 645 std::unique_ptr<SchedulerWorker> worker = SchedulerWorker::Create(
646 priority_hint, WrapUnique(new SchedulerWorkerDelegateImpl( 646 priority_hint, MakeUnique<SchedulerWorkerDelegateImpl>(
647 this, re_enqueue_sequence_callback, 647 this, re_enqueue_sequence_callback,
648 &shared_priority_queue_, static_cast<int>(i))), 648 &shared_priority_queue_, static_cast<int>(i)),
649 task_tracker_, i == 0 ? SchedulerWorker::InitialState::ALIVE 649 task_tracker_, i == 0 ? SchedulerWorker::InitialState::ALIVE
650 : SchedulerWorker::InitialState::DETACHED); 650 : SchedulerWorker::InitialState::DETACHED);
651 if (!worker) 651 if (!worker)
652 break; 652 break;
653 idle_workers_stack_.Push(worker.get()); 653 idle_workers_stack_.Push(worker.get());
654 workers_.push_back(std::move(worker)); 654 workers_.push_back(std::move(worker));
655 } 655 }
656 656
657 #if DCHECK_IS_ON() 657 #if DCHECK_IS_ON()
658 workers_created_.Signal(); 658 workers_created_.Signal();
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
697 AutoSchedulerLock auto_lock(idle_workers_stack_lock_); 697 AutoSchedulerLock auto_lock(idle_workers_stack_lock_);
698 idle_workers_stack_.Remove(worker); 698 idle_workers_stack_.Remove(worker);
699 } 699 }
700 700
701 bool SchedulerWorkerPoolImpl::CanWorkerDetachForTesting() { 701 bool SchedulerWorkerPoolImpl::CanWorkerDetachForTesting() {
702 return !worker_detachment_disallowed_.IsSet(); 702 return !worker_detachment_disallowed_.IsSet();
703 } 703 }
704 704
705 } // namespace internal 705 } // namespace internal
706 } // namespace base 706 } // namespace base
OLDNEW
« no previous file with comments | « base/task_scheduler/scheduler_service_thread.cc ('k') | base/task_scheduler/scheduler_worker_pool_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698