| Index: third_party/WebKit/public/platform/scheduler/base/task_queue.h
|
| diff --git a/third_party/WebKit/public/platform/scheduler/base/task_queue.h b/third_party/WebKit/public/platform/scheduler/base/task_queue.h
|
| index de0d22ce45eb4f5bf4373b8beef0c3378ac7b9c4..8e51e02524d40ac53796f0b0ed8d26ea9568c450 100644
|
| --- a/third_party/WebKit/public/platform/scheduler/base/task_queue.h
|
| +++ b/third_party/WebKit/public/platform/scheduler/base/task_queue.h
|
| @@ -7,7 +7,9 @@
|
|
|
| #include "base/macros.h"
|
| #include "base/message_loop/message_loop.h"
|
| +#include "base/optional.h"
|
| #include "base/single_thread_task_runner.h"
|
| +#include "base/time/time.h"
|
| #include "public/platform/WebCommon.h"
|
|
|
| namespace base {
|
| @@ -144,10 +146,29 @@ class BLINK_PLATFORM_EXPORT TaskQueue : public base::SingleThreadTaskRunner {
|
| // Returns true if the queue is completely empty.
|
| virtual bool IsEmpty() const = 0;
|
|
|
| - // Returns true if the queue has work that's ready to execute now. NOTE this
|
| - // must be called on the thread this TaskQueue was created by.
|
| + // Returns true if the queue has work that's ready to execute now.
|
| + // NOTE: this must be called on the thread this TaskQueue was created by.
|
| virtual bool HasPendingImmediateWork() const = 0;
|
|
|
| + // Returns requested run time of next delayed task, which is not ready
|
| + // to run. If there are no such tasks, returns base::nullopt.
|
| + // NOTE: this must be called on the thread this TaskQueue was created by.
|
| + virtual base::Optional<base::TimeTicks> GetNextScheduledWakeUp() = 0;
|
| +
|
| + // Returns next point in time when the task from this queue is ready to run.
|
| + // (now if there are immediate tasks or ready delayed task, run time
|
| + // of earliest delayed task otherwise).
|
| + // Returns base::nullopt if there are no tasks in this queue.
|
| + //
|
| + // NOTE: This function call is approximately equivalent to following:
|
| + // if (HasPendingImmediateWork())
|
| + // return Now();
|
| + // return GetNextScheduledWakeUp();
|
| + // Difference is that GetNextTaskRunTime behaves "atomically" i.e.
|
| + // it avoids problem when task becomes ready immediately after
|
| + // HasPendingImmediateWork.
|
| + virtual base::Optional<base::TimeTicks> GetNextTaskRunTime() = 0;
|
| +
|
| // Can be called on any thread.
|
| virtual const char* GetName() const = 0;
|
|
|
|
|