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

Side by Side Diff: components/scheduler/child/worker_scheduler_impl.cc

Issue 1106213002: Adds a SHUTDOWN_TASK_QUEUE and a PreShutdown api to the scheduler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review comments. Created 5 years, 7 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/scheduler/child/worker_scheduler_impl.h" 5 #include "components/scheduler/child/worker_scheduler_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop_proxy.h" 8 #include "base/message_loop/message_loop_proxy.h"
9 #include "base/trace_event/trace_event.h" 9 #include "base/trace_event/trace_event.h"
10 #include "base/trace_event/trace_event_argument.h" 10 #include "base/trace_event/trace_event_argument.h"
(...skipping 30 matching lines...) Expand all
41 DCHECK(initialized_); 41 DCHECK(initialized_);
42 return helper_.DefaultTaskRunner(); 42 return helper_.DefaultTaskRunner();
43 } 43 }
44 44
45 scoped_refptr<SingleThreadIdleTaskRunner> 45 scoped_refptr<SingleThreadIdleTaskRunner>
46 WorkerSchedulerImpl::IdleTaskRunner() { 46 WorkerSchedulerImpl::IdleTaskRunner() {
47 DCHECK(initialized_); 47 DCHECK(initialized_);
48 return helper_.IdleTaskRunner(); 48 return helper_.IdleTaskRunner();
49 } 49 }
50 50
51 scoped_refptr<base::SingleThreadTaskRunner>
52 WorkerSchedulerImpl::ShutdownTaskRunner() {
53 DCHECK(initialized_);
54 return helper_.ShutdownTaskRunner();
55 }
56
51 bool WorkerSchedulerImpl::CanExceedIdleDeadlineIfRequired() const { 57 bool WorkerSchedulerImpl::CanExceedIdleDeadlineIfRequired() const {
52 DCHECK(initialized_); 58 DCHECK(initialized_);
53 return helper_.CanExceedIdleDeadlineIfRequired(); 59 return helper_.CanExceedIdleDeadlineIfRequired();
54 } 60 }
55 61
56 bool WorkerSchedulerImpl::ShouldYieldForHighPriorityWork() { 62 bool WorkerSchedulerImpl::ShouldYieldForHighPriorityWork() {
57 // We don't consider any work as being high priority on workers. 63 // We don't consider any work as being high priority on workers.
58 return false; 64 return false;
59 } 65 }
60 66
61 void WorkerSchedulerImpl::AddTaskObserver( 67 void WorkerSchedulerImpl::AddTaskObserver(
62 base::MessageLoop::TaskObserver* task_observer) { 68 base::MessageLoop::TaskObserver* task_observer) {
63 DCHECK(initialized_); 69 DCHECK(initialized_);
64 helper_.AddTaskObserver(task_observer); 70 helper_.AddTaskObserver(task_observer);
65 } 71 }
66 72
67 void WorkerSchedulerImpl::RemoveTaskObserver( 73 void WorkerSchedulerImpl::RemoveTaskObserver(
68 base::MessageLoop::TaskObserver* task_observer) { 74 base::MessageLoop::TaskObserver* task_observer) {
69 DCHECK(initialized_); 75 DCHECK(initialized_);
70 helper_.RemoveTaskObserver(task_observer); 76 helper_.RemoveTaskObserver(task_observer);
71 } 77 }
72 78
79 void WorkerSchedulerImpl::PreShutdown() {
80 DCHECK(initialized_);
81 helper_.PreShutdown();
82 }
83
73 void WorkerSchedulerImpl::Shutdown() { 84 void WorkerSchedulerImpl::Shutdown() {
74 DCHECK(initialized_); 85 DCHECK(initialized_);
75 helper_.Shutdown(); 86 helper_.Shutdown();
76 } 87 }
77 88
78 SchedulerHelper* WorkerSchedulerImpl::GetSchedulerHelperForTesting() { 89 SchedulerHelper* WorkerSchedulerImpl::GetSchedulerHelperForTesting() {
79 return &helper_; 90 return &helper_;
80 } 91 }
81 92
82 bool WorkerSchedulerImpl::CanEnterLongIdlePeriod(base::TimeTicks, 93 bool WorkerSchedulerImpl::CanEnterLongIdlePeriod(base::TimeTicks,
83 base::TimeDelta*) { 94 base::TimeDelta*) {
84 return true; 95 return true;
85 } 96 }
86 97
87 base::TimeTicks WorkerSchedulerImpl::CurrentIdleTaskDeadlineForTesting() const { 98 base::TimeTicks WorkerSchedulerImpl::CurrentIdleTaskDeadlineForTesting() const {
88 base::TimeTicks deadline; 99 base::TimeTicks deadline;
89 helper_.CurrentIdleTaskDeadlineCallback(&deadline); 100 helper_.CurrentIdleTaskDeadlineCallback(&deadline);
90 return deadline; 101 return deadline;
91 } 102 }
92 103
93 } // namespace scheduler 104 } // namespace scheduler
OLDNEW
« no previous file with comments | « components/scheduler/child/worker_scheduler_impl.h ('k') | components/scheduler/renderer/null_renderer_scheduler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698