Index: base/test/scoped_mock_time_message_loop_task_runner.cc |
diff --git a/base/test/scoped_mock_time_message_loop_task_runner.cc b/base/test/scoped_mock_time_message_loop_task_runner.cc |
index 03c9c42c2292cfcd36e136d72182c15ba1102060..5b1c03faec72dd07f4785989d40522345697dd81 100644 |
--- a/base/test/scoped_mock_time_message_loop_task_runner.cc |
+++ b/base/test/scoped_mock_time_message_loop_task_runner.cc |
@@ -6,6 +6,7 @@ |
#include <deque> |
+#include "base/bind.h" |
#include "base/logging.h" |
#include "base/message_loop/message_loop.h" |
#include "base/run_loop.h" |
@@ -14,6 +15,13 @@ |
#include "base/time/time.h" |
namespace base { |
+namespace { |
+ |
+void RunOnceClosure(OnceClosure closure) { |
+ std::move(closure).Run(); |
+} |
+ |
+} // namespace |
ScopedMockTimeMessageLoopTaskRunner::ScopedMockTimeMessageLoopTaskRunner() |
: task_runner_(new TestMockTimeTaskRunner), |
@@ -28,9 +36,12 @@ ScopedMockTimeMessageLoopTaskRunner::ScopedMockTimeMessageLoopTaskRunner() |
ScopedMockTimeMessageLoopTaskRunner::~ScopedMockTimeMessageLoopTaskRunner() { |
DCHECK(previous_task_runner_->RunsTasksOnCurrentThread()); |
DCHECK_EQ(task_runner_, ThreadTaskRunnerHandle::Get()); |
- for (const auto& pending_task : task_runner_->TakePendingTasks()) { |
+ for (auto& pending_task : task_runner_->TakePendingTasks()) { |
+ // TODO(tzik): Remove RunOnceClosure once TaskRunner migrates from Closure |
+ // to OnceClosure. |
previous_task_runner_->PostDelayedTask( |
- pending_task.location, pending_task.task, |
+ pending_task.location, |
+ Bind(&RunOnceClosure, Passed(&pending_task.task)), |
pending_task.GetTimeToRun() - task_runner_->NowTicks()); |
} |
MessageLoop::current()->SetTaskRunner(std::move(previous_task_runner_)); |