| Index: mojo/edk/system/channel_endpoint.cc
|
| diff --git a/mojo/edk/system/channel_endpoint.cc b/mojo/edk/system/channel_endpoint.cc
|
| index ac2005603ee8a26d182637f6037c5c6e27d972de..0318f2f90c6426ec848ca4ccd6d9b10674ce0a5b 100644
|
| --- a/mojo/edk/system/channel_endpoint.cc
|
| +++ b/mojo/edk/system/channel_endpoint.cc
|
| @@ -62,6 +62,34 @@
|
| channel_ = nullptr;
|
| local_id_ = ChannelEndpointId();
|
| remote_id_ = ChannelEndpointId();
|
| + }
|
| +}
|
| +
|
| +void ChannelEndpoint::AttachToChannel(Channel* channel,
|
| + ChannelEndpointId local_id) {
|
| + DCHECK(channel);
|
| + DCHECK(local_id.is_valid());
|
| +
|
| + base::AutoLock locker(lock_);
|
| + DCHECK(!channel_);
|
| + DCHECK(!local_id_.is_valid());
|
| + channel_ = channel;
|
| + local_id_ = local_id;
|
| +}
|
| +
|
| +void ChannelEndpoint::Run(ChannelEndpointId remote_id) {
|
| + DCHECK(remote_id.is_valid());
|
| +
|
| + base::AutoLock locker(lock_);
|
| + if (!channel_)
|
| + return;
|
| +
|
| + DCHECK(!remote_id_.is_valid());
|
| + remote_id_ = remote_id;
|
| +
|
| + while (!paused_message_queue_.IsEmpty()) {
|
| + LOG_IF(WARNING, !WriteMessageNoLock(paused_message_queue_.GetMessage()))
|
| + << "Failed to write enqueue message to channel";
|
| }
|
| }
|
|
|
|
|