| Index: base/threading/worker_pool.cc
|
| diff --git a/base/threading/worker_pool.cc b/base/threading/worker_pool.cc
|
| index 6e07b6ef37e3d1b1c47ace828c6384a10061ddf0..a137e305739de037e09e3f1d14269250b199054d 100644
|
| --- a/base/threading/worker_pool.cc
|
| +++ b/base/threading/worker_pool.cc
|
| @@ -26,8 +26,8 @@ class PostTaskAndReplyWorkerPool : public internal::PostTaskAndReplyImpl {
|
|
|
| private:
|
| bool PostTask(const tracked_objects::Location& from_here,
|
| - const Closure& task) override {
|
| - return WorkerPool::PostTask(from_here, task, task_is_slow_);
|
| + OnceClosure task) override {
|
| + return WorkerPool::PostTask(from_here, std::move(task), task_is_slow_);
|
| }
|
|
|
| bool task_is_slow_;
|
| @@ -44,7 +44,7 @@ class WorkerPoolTaskRunner : public TaskRunner {
|
|
|
| // TaskRunner implementation
|
| bool PostDelayedTask(const tracked_objects::Location& from_here,
|
| - const Closure& task,
|
| + OnceClosure task,
|
| TimeDelta delay) override;
|
| bool RunsTasksOnCurrentThread() const override;
|
|
|
| @@ -55,7 +55,7 @@ class WorkerPoolTaskRunner : public TaskRunner {
|
| // zero because non-zero delays are not supported.
|
| bool PostDelayedTaskAssertZeroDelay(
|
| const tracked_objects::Location& from_here,
|
| - const Closure& task,
|
| + OnceClosure task,
|
| base::TimeDelta delay);
|
|
|
| const bool tasks_are_slow_;
|
| @@ -72,9 +72,9 @@ WorkerPoolTaskRunner::~WorkerPoolTaskRunner() {
|
|
|
| bool WorkerPoolTaskRunner::PostDelayedTask(
|
| const tracked_objects::Location& from_here,
|
| - const Closure& task,
|
| + OnceClosure task,
|
| TimeDelta delay) {
|
| - return PostDelayedTaskAssertZeroDelay(from_here, task, delay);
|
| + return PostDelayedTaskAssertZeroDelay(from_here, std::move(task), delay);
|
| }
|
|
|
| bool WorkerPoolTaskRunner::RunsTasksOnCurrentThread() const {
|
| @@ -83,11 +83,11 @@ bool WorkerPoolTaskRunner::RunsTasksOnCurrentThread() const {
|
|
|
| bool WorkerPoolTaskRunner::PostDelayedTaskAssertZeroDelay(
|
| const tracked_objects::Location& from_here,
|
| - const Closure& task,
|
| + OnceClosure task,
|
| base::TimeDelta delay) {
|
| DCHECK_EQ(delay.InMillisecondsRoundedUp(), 0)
|
| << "WorkerPoolTaskRunner does not support non-zero delays";
|
| - return WorkerPool::PostTask(from_here, task, tasks_are_slow_);
|
| + return WorkerPool::PostTask(from_here, std::move(task), tasks_are_slow_);
|
| }
|
|
|
| struct TaskRunnerHolder {
|
| @@ -104,8 +104,8 @@ base::LazyInstance<TaskRunnerHolder>::Leaky
|
| } // namespace
|
|
|
| bool WorkerPool::PostTaskAndReply(const tracked_objects::Location& from_here,
|
| - const Closure& task,
|
| - const Closure& reply,
|
| + OnceClosure task,
|
| + OnceClosure reply,
|
| bool task_is_slow) {
|
| // Do not report PostTaskAndReplyRelay leaks in tests. There's nothing we can
|
| // do about them because WorkerPool doesn't have a flushing API.
|
| @@ -113,8 +113,8 @@ bool WorkerPool::PostTaskAndReply(const tracked_objects::Location& from_here,
|
| // http://crbug.com/290897
|
| // Note: this annotation does not cover tasks posted through a TaskRunner.
|
| ANNOTATE_SCOPED_MEMORY_LEAK;
|
| - return PostTaskAndReplyWorkerPool(task_is_slow).PostTaskAndReply(
|
| - from_here, task, reply);
|
| + return PostTaskAndReplyWorkerPool(task_is_slow)
|
| + .PostTaskAndReply(from_here, std::move(task), std::move(reply));
|
| }
|
|
|
| // static
|
|
|