Index: base/threading/post_task_and_reply_impl.h |
diff --git a/base/threading/post_task_and_reply_impl.h b/base/threading/post_task_and_reply_impl.h |
index d21ab78de85501e4cd7dd8cf66d0e02e8176dc5f..5663b20a22445e68d6ce8375bcb788777ccf5df3 100644 |
--- a/base/threading/post_task_and_reply_impl.h |
+++ b/base/threading/post_task_and_reply_impl.h |
@@ -2,41 +2,26 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-// This file contains the implementation shared by |
-// TaskRunner::PostTaskAndReply and WorkerPool::PostTaskAndReply. |
- |
#ifndef BASE_THREADING_POST_TASK_AND_REPLY_IMPL_H_ |
#define BASE_THREADING_POST_TASK_AND_REPLY_IMPL_H_ |
+#include "base/base_export.h" |
#include "base/callback_forward.h" |
#include "base/location.h" |
namespace base { |
namespace internal { |
-// Inherit from this in a class that implements PostTask appropriately |
-// for sending to a destination thread. |
-// |
-// Note that 'reply' will always get posted back to your current |
-// MessageLoop. |
-// |
-// If you're looking for a concrete implementation of |
-// PostTaskAndReply, you probably want base::SingleThreadTaskRunner, or you |
-// may want base::WorkerPool. |
-class PostTaskAndReplyImpl { |
- public: |
- virtual ~PostTaskAndReplyImpl() = default; |
- |
- // Implementation for TaskRunner::PostTaskAndReply and |
- // WorkerPool::PostTaskAndReply. |
- bool PostTaskAndReply(const tracked_objects::Location& from_here, |
- const Closure& task, |
- const Closure& reply); |
+using PostTaskCallback = |
+ Callback<bool(const tracked_objects::Location&, const Closure& task)>; |
- private: |
- virtual bool PostTask(const tracked_objects::Location& from_here, |
- const Closure& task) = 0; |
-}; |
+// Posts |task| via |post_task_callback|. Then, when |task| completes its |
+// execution, posts |reply| to the sequence from which this function was |
+// invoked. Can only be called when SequencedTaskRunnerHandle::IsSet(). |
gab
2016/07/25 17:57:44
Indeed, this was also the conclusion from https://
fdoray
2016/07/25 20:40:04
PostTaskAndReply() doesn't have to be called on a
|
+bool BASE_EXPORT PostTaskAndReply(const tracked_objects::Location& from_here, |
+ const Closure& task, |
+ const Closure& reply, |
+ const PostTaskCallback& post_task_callback); |
} // namespace internal |
} // namespace base |