Index: mojo/public/cpp/bindings/lib/multiplex_router.h |
diff --git a/mojo/public/cpp/bindings/lib/multiplex_router.h b/mojo/public/cpp/bindings/lib/multiplex_router.h |
index c1e02984401bf5e6671e9793fc5e4f680da7190a..b378f2df3c9ad0c99acbcd32b01ec19aa749c35d 100644 |
--- a/mojo/public/cpp/bindings/lib/multiplex_router.h |
+++ b/mojo/public/cpp/bindings/lib/multiplex_router.h |
@@ -17,9 +17,9 @@ |
#include "base/macros.h" |
#include "base/memory/ref_counted.h" |
#include "base/memory/weak_ptr.h" |
-#include "base/single_thread_task_runner.h" |
+#include "base/sequence_checker.h" |
+#include "base/sequenced_task_runner.h" |
#include "base/synchronization/lock.h" |
-#include "base/threading/thread_checker.h" |
#include "mojo/public/cpp/bindings/associated_group_controller.h" |
#include "mojo/public/cpp/bindings/bindings_export.h" |
#include "mojo/public/cpp/bindings/connector.h" |
@@ -32,7 +32,7 @@ |
#include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h" |
namespace base { |
-class SingleThreadTaskRunner; |
+class SequencedTaskRunner; |
} |
namespace mojo { |
@@ -75,7 +75,7 @@ class MOJO_CPP_BINDINGS_EXPORT MultiplexRouter |
MultiplexRouter(ScopedMessagePipeHandle message_pipe, |
Config config, |
bool set_interface_id_namespace_bit, |
- scoped_refptr<base::SingleThreadTaskRunner> runner); |
+ scoped_refptr<base::SequencedTaskRunner> runner); |
// Sets the master interface name for this router. Only used when reporting |
// message header or control message validation errors. |
@@ -98,7 +98,7 @@ class MOJO_CPP_BINDINGS_EXPORT MultiplexRouter |
InterfaceEndpointController* AttachEndpointClient( |
const ScopedInterfaceEndpointHandle& handle, |
InterfaceEndpointClient* endpoint_client, |
- scoped_refptr<base::SingleThreadTaskRunner> runner) override; |
+ scoped_refptr<base::SequencedTaskRunner> runner) override; |
void DetachEndpointClient( |
const ScopedInterfaceEndpointHandle& handle) override; |
void RaiseError() override; |
@@ -113,14 +113,14 @@ class MOJO_CPP_BINDINGS_EXPORT MultiplexRouter |
// Extracts the underlying message pipe. |
ScopedMessagePipeHandle PassMessagePipe() { |
- DCHECK(thread_checker_.CalledOnValidThread()); |
+ DCHECK(sequence_checker_.CalledOnValidSequence()); |
DCHECK(!HasAssociatedEndpoints()); |
return connector_.PassMessagePipe(); |
} |
// Blocks the current thread until the first incoming message, or |deadline|. |
bool WaitForIncomingMessage(MojoDeadline deadline) { |
- DCHECK(thread_checker_.CalledOnValidThread()); |
+ DCHECK(sequence_checker_.CalledOnValidSequence()); |
return connector_.WaitForIncomingMessage(deadline); |
} |
@@ -138,13 +138,13 @@ class MOJO_CPP_BINDINGS_EXPORT MultiplexRouter |
// Is the router bound to a message pipe handle? |
bool is_valid() const { |
- DCHECK(thread_checker_.CalledOnValidThread()); |
+ DCHECK(sequence_checker_.CalledOnValidSequence()); |
return connector_.is_valid(); |
} |
// TODO(yzshen): consider removing this getter. |
MessagePipeHandle handle() const { |
- DCHECK(thread_checker_.CalledOnValidThread()); |
+ DCHECK(sequence_checker_.CalledOnValidSequence()); |
return connector_.handle(); |
} |
@@ -192,7 +192,7 @@ class MOJO_CPP_BINDINGS_EXPORT MultiplexRouter |
// of this object, if direct calls are allowed, the caller needs to hold on to |
// a ref outside of |lock_| before calling this method. |
void ProcessTasks(ClientCallBehavior client_call_behavior, |
- base::SingleThreadTaskRunner* current_task_runner); |
+ base::SequencedTaskRunner* current_task_runner); |
// Processes the first queued sync message for the endpoint corresponding to |
// |id|; returns whether there are more sync messages for that endpoint in the |
@@ -203,16 +203,14 @@ class MOJO_CPP_BINDINGS_EXPORT MultiplexRouter |
bool ProcessFirstSyncMessageForEndpoint(InterfaceId id); |
// Returns true to indicate that |task|/|message| has been processed. |
- bool ProcessNotifyErrorTask( |
- Task* task, |
- ClientCallBehavior client_call_behavior, |
- base::SingleThreadTaskRunner* current_task_runner); |
- bool ProcessIncomingMessage( |
- Message* message, |
- ClientCallBehavior client_call_behavior, |
- base::SingleThreadTaskRunner* current_task_runner); |
- |
- void MaybePostToProcessTasks(base::SingleThreadTaskRunner* task_runner); |
+ bool ProcessNotifyErrorTask(Task* task, |
+ ClientCallBehavior client_call_behavior, |
+ base::SequencedTaskRunner* current_task_runner); |
+ bool ProcessIncomingMessage(Message* message, |
+ ClientCallBehavior client_call_behavior, |
+ base::SequencedTaskRunner* current_task_runner); |
+ |
+ void MaybePostToProcessTasks(base::SequencedTaskRunner* task_runner); |
void LockAndCallProcessTasks(); |
// Updates the state of |endpoint|. If both the endpoint and its peer have |
@@ -232,7 +230,7 @@ class MOJO_CPP_BINDINGS_EXPORT MultiplexRouter |
// comments of kInterfaceIdNamespaceMask. |
const bool set_interface_id_namespace_bit_; |
- scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
+ scoped_refptr<base::SequencedTaskRunner> task_runner_; |
// Owned by |filters_| below. |
MessageHeaderValidator* header_validator_; |
@@ -240,7 +238,7 @@ class MOJO_CPP_BINDINGS_EXPORT MultiplexRouter |
FilterChain filters_; |
Connector connector_; |
- base::ThreadChecker thread_checker_; |
+ base::SequenceChecker sequence_checker_; |
// Protects the following members. |
// Sets to nullptr in Config::SINGLE_INTERFACE* mode. |
@@ -258,7 +256,7 @@ class MOJO_CPP_BINDINGS_EXPORT MultiplexRouter |
std::map<InterfaceId, std::deque<Task*>> sync_message_tasks_; |
bool posted_to_process_tasks_; |
- scoped_refptr<base::SingleThreadTaskRunner> posted_to_task_runner_; |
+ scoped_refptr<base::SequencedTaskRunner> posted_to_task_runner_; |
bool encountered_error_; |