Chromium Code Reviews| 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 |