Chromium Code Reviews| Index: content/child/scheduler/child_scheduler.h |
| diff --git a/content/child/scheduler/worker_scheduler.h b/content/child/scheduler/child_scheduler.h |
| similarity index 72% |
| copy from content/child/scheduler/worker_scheduler.h |
| copy to content/child/scheduler/child_scheduler.h |
| index 6d906267b89523825a058f4a852c2b6abb2fe9ba..5769f4342498fd5110e0e9764c057e59aa95f768 100644 |
| --- a/content/child/scheduler/worker_scheduler.h |
| +++ b/content/child/scheduler/child_scheduler.h |
| @@ -2,8 +2,8 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#ifndef CONTENT_CHILD_SCHEDULER_WORKER_SCHEDULER_H_ |
| -#define CONTENT_CHILD_SCHEDULER_WORKER_SCHEDULER_H_ |
| +#ifndef CONTENT_CHILD_SCHEDULER_CHILD_SCHEDULER_H_ |
| +#define CONTENT_CHILD_SCHEDULER_CHILD_SCHEDULER_H_ |
| #include "base/message_loop/message_loop.h" |
| #include "content/child/scheduler/single_thread_idle_task_runner.h" |
| @@ -15,14 +15,9 @@ class MessageLoop; |
| namespace content { |
| -class CONTENT_EXPORT WorkerScheduler { |
| +class CONTENT_EXPORT ChildScheduler { |
| public: |
| - virtual ~WorkerScheduler(); |
| - static scoped_ptr<WorkerScheduler> Create(base::MessageLoop* message_loop); |
| - |
| - // Must be called before the scheduler can be used. Does any post construction |
| - // initialization needed such as initializing idle period detection. |
| - virtual void Init() = 0; |
| + virtual ~ChildScheduler() { } |
| // Returns the default task runner. |
| virtual scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner() = 0; |
| @@ -32,6 +27,13 @@ class CONTENT_EXPORT WorkerScheduler { |
| // time if no idle time is available. |
| virtual scoped_refptr<SingleThreadIdleTaskRunner> IdleTaskRunner() = 0; |
| + // Returns true if there is high priority work pending on the main thread |
|
alex clarke (OOO till 29th)
2015/04/16 11:32:06
I wonder if we can avoid saying 'main thread'. Pe
rmcilroy
2015/04/16 12:10:49
Works for me (made it 'thread this scheduler was c
|
| + // and the caller should yield to let the scheduler service that work. Note |
| + // that this is a stricter condition than |IsHighPriorityWorkAnticipated|, |
| + // restricted to the case where real work is pending. |
| + // Must be called from the scheduler's main thread. |
| + virtual bool ShouldYieldForHighPriorityWork() = 0; |
| + |
| // Returns true if a currently running idle task could exceed its deadline |
| // without impacting user experience too much. This should only be used if |
| // there is a task which cannot be pre-empted and is likely to take longer |
| @@ -39,7 +41,7 @@ class CONTENT_EXPORT WorkerScheduler { |
| // check whether more work can be performed on the current idle task after |
| // its deadline has expired - post a new idle task for the continuation of the |
| // work in this case. |
| - // Must be called from the worker's thread. |
| + // Must be called from the scheduler's main thread. |
|
alex clarke (OOO till 29th)
2015/04/16 11:32:06
In the helper we say 'Must be called from the thre
rmcilroy
2015/04/16 12:10:49
Done.
|
| virtual bool CanExceedIdleDeadlineIfRequired() const = 0; |
| // Adds or removes a task observer from the scheduler. The observer will be |
| @@ -56,10 +58,10 @@ class CONTENT_EXPORT WorkerScheduler { |
| virtual void Shutdown() = 0; |
| protected: |
| - WorkerScheduler(); |
| - DISALLOW_COPY_AND_ASSIGN(WorkerScheduler); |
| + ChildScheduler() { } |
| + DISALLOW_COPY_AND_ASSIGN(ChildScheduler); |
| }; |
| } // namespace content |
| -#endif // CONTENT_CHILD_SCHEDULER_WORKER_SCHEDULER_H_ |
| +#endif // CONTENT_CHILD_SCHEDULER_CHILD_SCHEDULER_H_ |