diff options
Diffstat (limited to 'chromium/base/task/sequence_manager/task_queue_impl.cc')
-rw-r--r-- | chromium/base/task/sequence_manager/task_queue_impl.cc | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/chromium/base/task/sequence_manager/task_queue_impl.cc b/chromium/base/task/sequence_manager/task_queue_impl.cc index d109f915ded..7c22f9c1121 100644 --- a/chromium/base/task/sequence_manager/task_queue_impl.cc +++ b/chromium/base/task/sequence_manager/task_queue_impl.cc @@ -78,16 +78,18 @@ TaskQueueImpl::TaskRunner::~TaskRunner() {} bool TaskQueueImpl::TaskRunner::PostDelayedTask(const Location& location, OnceClosure callback, TimeDelta delay) { - return task_poster_->PostTask(PostedTask(std::move(callback), location, delay, - Nestable::kNestable, task_type_)); + return task_poster_->PostTask(PostedTask(this, std::move(callback), location, + delay, Nestable::kNestable, + task_type_)); } bool TaskQueueImpl::TaskRunner::PostNonNestableDelayedTask( const Location& location, OnceClosure callback, TimeDelta delay) { - return task_poster_->PostTask(PostedTask(std::move(callback), location, delay, - Nestable::kNonNestable, task_type_)); + return task_poster_->PostTask(PostedTask(this, std::move(callback), location, + delay, Nestable::kNonNestable, + task_type_)); } bool TaskQueueImpl::TaskRunner::RunsTasksInCurrentSequence() const { @@ -423,8 +425,10 @@ void TaskQueueImpl::PushOntoDelayedIncomingQueue(Task pending_task) { #endif // TODO(altimin): Add a copy method to Task to capture metadata here. + auto task_runner = pending_task.task_runner; PostImmediateTaskImpl( - PostedTask(BindOnce(&TaskQueueImpl::ScheduleDelayedWorkTask, + PostedTask(std::move(task_runner), + BindOnce(&TaskQueueImpl::ScheduleDelayedWorkTask, Unretained(this), std::move(pending_task)), FROM_HERE, TimeDelta(), Nestable::kNonNestable, pending_task.task_type), |