Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(494)

Unified Diff: base/task/cancelable_task_tracker.cc

Issue 2678303002: Pass Callback by value on PostTaskAndReply family (Closed)
Patch Set: rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/task/cancelable_task_tracker.h ('k') | base/task_runner.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/task/cancelable_task_tracker.cc
diff --git a/base/task/cancelable_task_tracker.cc b/base/task/cancelable_task_tracker.cc
index 92d82cc9eaee49a18e9630f7230f7956dc36564d..2a68a57bc6a202edb33a5045299a1b9f7c6023e4 100644
--- a/base/task/cancelable_task_tracker.cc
+++ b/base/task/cancelable_task_tracker.cc
@@ -74,8 +74,8 @@ CancelableTaskTracker::TaskId CancelableTaskTracker::PostTask(
CancelableTaskTracker::TaskId CancelableTaskTracker::PostTaskAndReply(
TaskRunner* task_runner,
const tracked_objects::Location& from_here,
- const Closure& task,
- const Closure& reply) {
+ Closure task,
+ Closure reply) {
DCHECK(sequence_checker_.CalledOnValidSequence());
// We need a SequencedTaskRunnerHandle to run |reply|.
@@ -87,15 +87,12 @@ CancelableTaskTracker::TaskId CancelableTaskTracker::PostTaskAndReply(
TaskId id = next_id_;
next_id_++; // int64_t is big enough that we ignore the potential overflow.
- const Closure& untrack_closure =
+ Closure untrack_closure =
Bind(&CancelableTaskTracker::Untrack, weak_factory_.GetWeakPtr(), id);
- bool success =
- task_runner->PostTaskAndReply(from_here,
- Bind(&RunIfNotCanceled, flag, task),
- Bind(&RunIfNotCanceledThenUntrack,
- base::Owned(flag),
- reply,
- untrack_closure));
+ bool success = task_runner->PostTaskAndReply(
+ from_here, Bind(&RunIfNotCanceled, flag, std::move(task)),
+ Bind(&RunIfNotCanceledThenUntrack, base::Owned(flag), std::move(reply),
+ std::move(untrack_closure)));
if (!success)
return kBadTaskId;
« no previous file with comments | « base/task/cancelable_task_tracker.h ('k') | base/task_runner.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698