Index: base/task_scheduler/scheduler_thread_pool.h |
diff --git a/base/task_scheduler/scheduler_thread_pool.h b/base/task_scheduler/scheduler_thread_pool.h |
index 2451474d297209912dfae6a491731871a7e59e49..9793162b62aab795563d6fe20805cde7b44c051f 100644 |
--- a/base/task_scheduler/scheduler_thread_pool.h |
+++ b/base/task_scheduler/scheduler_thread_pool.h |
@@ -17,6 +17,7 @@ |
namespace base { |
namespace internal { |
+class SchedulerWorkerThread; |
struct SequenceSortKey; |
// Interface for a thread pool. |
@@ -37,16 +38,26 @@ class BASE_EXPORT SchedulerThreadPool { |
virtual void ReEnqueueSequence(scoped_refptr<Sequence> sequence, |
const SequenceSortKey& sequence_sort_key) = 0; |
- // Posts |task| to be executed as part of |sequence|. Returns true if |task| |
- // is posted. |
+ // Posts |task| to be executed as part of |sequence|. If |worker_thread| is |
+ // non-null, |task| will be scheduled to run on it specifically (note: |
+ // |worker_thread| must be owned by this SchedulerThreadPool); otherwise, |
+ // |task| will be added to the pending shared work. Returns true if |task| is |
+ // posted. |
virtual bool PostTaskWithSequence(std::unique_ptr<Task> task, |
- scoped_refptr<Sequence> sequence) = 0; |
+ scoped_refptr<Sequence> sequence, |
+ SchedulerWorkerThread* worker_thread) = 0; |
- // Posts |task| to be executed by this thread pool as part of |sequence|. The |
- // scheduler's TaskTracker must have allowed |task| to be posted before this |
- // is called. This must only be called after |task|'s delayed run time. |
- virtual void PostTaskWithSequenceNow(std::unique_ptr<Task> task, |
- scoped_refptr<Sequence> sequence) = 0; |
+ // Posts |task| to be executed by this thread pool as part of |sequence|. If |
+ // |worker_thread| is non-null, |task| will be scheduled to run on it |
+ // specifically (note: |worker_thread| must be owned by this |
+ // SchedulerThreadPool); otherwise, |task| will be added to the pending shared |
+ // work. The scheduler's TaskTracker must have allowed |task| to be posted |
+ // before this is called. This must only be called after |task|'s delayed run |
+ // time. |
+ virtual void PostTaskWithSequenceNow( |
+ std::unique_ptr<Task> task, |
+ scoped_refptr<Sequence> sequence, |
+ SchedulerWorkerThread* worker_thread) = 0; |
}; |
} // namespace internal |