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

Unified Diff: base/task_runner.cc

Issue 2180953002: Support PostTaskAndReply from a sequenced task. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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
Index: base/task_runner.cc
diff --git a/base/task_runner.cc b/base/task_runner.cc
index 262e1f8b09eac8d9f91b4113ddeccc27a33323ad..8f9d0f5a082b1023ab2be433ca25986703bbbb08 100644
--- a/base/task_runner.cc
+++ b/base/task_runner.cc
@@ -4,42 +4,14 @@
#include "base/task_runner.h"
+#include "base/bind.h"
+#include "base/bind_helpers.h"
gab 2016/07/25 17:57:44 I think bind_helpers.h is an implicit include from
fdoray 2016/07/25 20:40:04 Done.
#include "base/compiler_specific.h"
#include "base/logging.h"
#include "base/threading/post_task_and_reply_impl.h"
namespace base {
-namespace {
-
-// TODO(akalin): There's only one other implementation of
-// PostTaskAndReplyImpl in WorkerPool. Investigate whether it'll be
-// possible to merge the two.
-class PostTaskAndReplyTaskRunner : public internal::PostTaskAndReplyImpl {
- public:
- explicit PostTaskAndReplyTaskRunner(TaskRunner* destination);
-
- private:
- bool PostTask(const tracked_objects::Location& from_here,
- const Closure& task) override;
-
- // Non-owning.
- TaskRunner* destination_;
-};
-
-PostTaskAndReplyTaskRunner::PostTaskAndReplyTaskRunner(
- TaskRunner* destination) : destination_(destination) {
- DCHECK(destination_);
-}
-
-bool PostTaskAndReplyTaskRunner::PostTask(
- const tracked_objects::Location& from_here,
- const Closure& task) {
- return destination_->PostTask(from_here, task);
-}
-
-} // namespace
-
bool TaskRunner::PostTask(const tracked_objects::Location& from_here,
const Closure& task) {
return PostDelayedTask(from_here, task, base::TimeDelta());
@@ -49,8 +21,8 @@ bool TaskRunner::PostTaskAndReply(
const tracked_objects::Location& from_here,
const Closure& task,
const Closure& reply) {
- return PostTaskAndReplyTaskRunner(this).PostTaskAndReply(
- from_here, task, reply);
+ return internal::PostTaskAndReply(
+ from_here, task, reply, Bind(&TaskRunner::PostTask, Unretained(this)));
}
TaskRunner::TaskRunner() {}

Powered by Google App Engine
This is Rietveld 408576698