| Index: base/threading/post_task_and_reply_impl.cc
|
| diff --git a/base/threading/post_task_and_reply_impl.cc b/base/threading/post_task_and_reply_impl.cc
|
| index d16f8bd22590e857cb65c9b3cd5d9d7db4f3132e..802de8c3c736932223b0bcf078faeb123b780e72 100644
|
| --- a/base/threading/post_task_and_reply_impl.cc
|
| +++ b/base/threading/post_task_and_reply_impl.cc
|
| @@ -39,12 +39,11 @@ class PostTaskAndReplyRelay {
|
|
|
| ~PostTaskAndReplyRelay() {
|
| DCHECK(sequence_checker_.CalledOnValidSequence());
|
| - task_.Reset();
|
| - reply_.Reset();
|
| }
|
|
|
| void RunTaskAndPostReply() {
|
| task_.Run();
|
| + task_.Reset();
|
| origin_task_runner_->PostTask(
|
| from_here_, Bind(&PostTaskAndReplyRelay::RunReplyAndSelfDestruct,
|
| base::Unretained(this)));
|
| @@ -54,10 +53,10 @@ class PostTaskAndReplyRelay {
|
| void RunReplyAndSelfDestruct() {
|
| DCHECK(sequence_checker_.CalledOnValidSequence());
|
|
|
| - // Force |task_| to be released before |reply_| is to ensure that no one
|
| - // accidentally depends on |task_| keeping one of its arguments alive while
|
| - // |reply_| is executing.
|
| - task_.Reset();
|
| + // Ensure |task_| has already been released before |reply_| to ensure that
|
| + // no one accidentally depends on |task_| keeping one of its arguments alive
|
| + // while |reply_| is executing.
|
| + DCHECK(!task_);
|
|
|
| reply_.Run();
|
|
|
|
|