Index: base/deferred_sequenced_task_runner.h |
diff --git a/base/deferred_sequenced_task_runner.h b/base/deferred_sequenced_task_runner.h |
index e5d57df5a0ba4ed095c4b6a71b66f56caf9fb14c..a731b0e66b7744a8f2b4fa60ede8acebb8aa54f9 100644 |
--- a/base/deferred_sequenced_task_runner.h |
+++ b/base/deferred_sequenced_task_runner.h |
@@ -28,13 +28,13 @@ class BASE_EXPORT DeferredSequencedTaskRunner : public SequencedTaskRunner { |
// TaskRunner implementation |
bool PostDelayedTask(const tracked_objects::Location& from_here, |
- const Closure& task, |
+ OnceClosure task, |
TimeDelta delay) override; |
bool RunsTasksOnCurrentThread() const override; |
// SequencedTaskRunner implementation |
bool PostNonNestableDelayedTask(const tracked_objects::Location& from_here, |
- const Closure& task, |
+ OnceClosure task, |
TimeDelta delay) override; |
// Start the execution - posts all queued tasks to the target executor. The |
@@ -46,11 +46,13 @@ class BASE_EXPORT DeferredSequencedTaskRunner : public SequencedTaskRunner { |
private: |
struct DeferredTask { |
DeferredTask(); |
- DeferredTask(const DeferredTask& other); |
+ DeferredTask(DeferredTask&& other); |
~DeferredTask(); |
+ DeferredTask& operator=(DeferredTask&& other); |
+ |
tracked_objects::Location posted_from; |
- Closure task; |
+ mutable OnceClosure task; |
// The delay this task was initially posted with. |
TimeDelta delay; |
bool is_non_nestable; |
@@ -60,7 +62,7 @@ class BASE_EXPORT DeferredSequencedTaskRunner : public SequencedTaskRunner { |
// Creates a |Task| object and adds it to |deferred_tasks_queue_|. |
void QueueDeferredTask(const tracked_objects::Location& from_here, |
- const Closure& task, |
+ OnceClosure task, |
TimeDelta delay, |
bool is_non_nestable); |