Index: base/task_scheduler/scheduler_thread_pool_impl.cc |
diff --git a/base/task_scheduler/scheduler_thread_pool_impl.cc b/base/task_scheduler/scheduler_thread_pool_impl.cc |
index 0eba0f7f0e13df7687fc995b3d7893abda4c9703..27afa38724fbfb5339811ef4d30fce9316187af2 100644 |
--- a/base/task_scheduler/scheduler_thread_pool_impl.cc |
+++ b/base/task_scheduler/scheduler_thread_pool_impl.cc |
@@ -77,10 +77,12 @@ class SchedulerSequencedTaskRunner : public SequencedTaskRunner { |
bool PostDelayedTask(const tracked_objects::Location& from_here, |
const Closure& closure, |
TimeDelta delay) override { |
+ std::unique_ptr<Task> task(new Task(from_here, closure, traits_, delay)); |
+ task->sequenced_task_runner_ref = this; |
+ |
// Post the task as part of |sequence_|. |
- return thread_pool_->PostTaskWithSequence( |
- WrapUnique(new Task(from_here, closure, traits_, delay)), sequence_, |
- nullptr); |
+ return thread_pool_->PostTaskWithSequence(std::move(task), sequence_, |
+ nullptr); |
} |
bool PostNonNestableDelayedTask(const tracked_objects::Location& from_here, |
@@ -124,10 +126,12 @@ class SchedulerSingleThreadTaskRunner : public SingleThreadTaskRunner { |
bool PostDelayedTask(const tracked_objects::Location& from_here, |
const Closure& closure, |
TimeDelta delay) override { |
+ std::unique_ptr<Task> task(new Task(from_here, closure, traits_, delay)); |
+ task->single_thread_task_runner_ref = this; |
+ |
// Post the task to be executed by |worker_thread_| as part of |sequence_|. |
- return thread_pool_->PostTaskWithSequence( |
- WrapUnique(new Task(from_here, closure, traits_, delay)), sequence_, |
- worker_thread_); |
+ return thread_pool_->PostTaskWithSequence(std::move(task), sequence_, |
+ worker_thread_); |
} |
bool PostNonNestableDelayedTask(const tracked_objects::Location& from_here, |