Index: components/scheduler/base/task_queue.h |
diff --git a/components/scheduler/base/task_queue.h b/components/scheduler/base/task_queue.h |
index fbbbc257f0b7ad21e5d441b7dce348f89a641e3e..393cc5077374a1b4f35302de9c1e6647b8273470 100644 |
--- a/components/scheduler/base/task_queue.h |
+++ b/components/scheduler/base/task_queue.h |
@@ -19,6 +19,12 @@ |
// Unregisters the task queue after which no tasks posted to it will run and |
// the TaskQueueManager's reference to it will be released soon. |
virtual void UnregisterTaskQueue() = 0; |
+ |
+ // Post a delayed task at an absolute desired run time instead of a time |
+ // delta from the current time. |
+ virtual bool PostDelayedTaskAt(const tracked_objects::Location& from_here, |
+ const base::Closure& task, |
+ base::TimeTicks desired_run_time) = 0; |
enum QueuePriority { |
// Queues with control priority will run before any other queue, and will |
@@ -85,9 +91,6 @@ |
// A queue in the HAS_WORK state has tasks in the work task queue which |
// are runnable. |
HAS_WORK, |
- // The work and incomming queues are empty but there is delayed work |
- // scheduled. |
- NO_IMMEDIATE_WORK, |
}; |
// Options for constructing a TaskQueue. Once set the |name|, |
@@ -142,11 +145,10 @@ |
virtual bool IsQueueEnabled() const = 0; |
// Returns true if there no tasks in either the work or incoming task queue. |
- // This method ignores delayed tasks that are scheduled to run in the future. |
// Note that this function involves taking a lock, so calling it has some |
// overhead. NOTE this must be called on the thread this TaskQueue was created |
// by. |
- virtual bool HasPendingImmediateTask() const; |
+ virtual bool IsQueueEmpty() const; |
// Returns the QueueState. Note that this function involves taking a lock, so |
// calling it has some overhead. |
@@ -181,7 +183,7 @@ |
// Removes the task queue from the previous TimeDomain and adds it to |
// |domain|. This is a moderately expensive operation. |
- virtual void SetTimeDomain(TimeDomain* domain) = 0; |
+ virtual void SetTimeDomain(const scoped_refptr<TimeDomain>& domain) = 0; |
protected: |
~TaskQueue() override {} |