| Index: mojo/edk/system/node_controller.cc
|
| diff --git a/mojo/edk/system/node_controller.cc b/mojo/edk/system/node_controller.cc
|
| index 7bdb571c88c7a2c5857a3a9ae494c85366fe65d7..982ca39d02b77a94bd94dbc0da307d473c0367dd 100644
|
| --- a/mojo/edk/system/node_controller.cc
|
| +++ b/mojo/edk/system/node_controller.cc
|
| @@ -710,6 +710,9 @@ void NodeController::SendPeerMessage(const ports::NodeName& name,
|
| scoped_refptr<NodeChannel> broker = GetBrokerChannel();
|
| if (!broker) {
|
| DVLOG(1) << "Dropping message for unknown peer: " << name;
|
| +
|
| + base::AutoLock lock(peers_lock_);
|
| + pending_peer_messages_.erase(name);
|
| return;
|
| }
|
| broker->RequestIntroduction(name);
|
| @@ -935,6 +938,16 @@ void NodeController::OnAcceptParent(const ports::NodeName& from_node,
|
| return;
|
| }
|
|
|
| + {
|
| + base::AutoLock lock(reserved_ports_lock_);
|
| + auto it = pending_child_tokens_.find(from_node);
|
| + if (it != pending_child_tokens_.end()) {
|
| + std::string token = std::move(it->second);
|
| + pending_child_tokens_.erase(it);
|
| + pending_child_tokens_[child_name] = std::move(token);
|
| + }
|
| + }
|
| +
|
| scoped_refptr<NodeChannel> channel = it->second;
|
| pending_children_.erase(it);
|
|
|
| @@ -1155,6 +1168,7 @@ void NodeController::OnRequestPortMerge(
|
| return;
|
| }
|
| local_port = it->second.port;
|
| + reserved_ports_.erase(it);
|
| }
|
|
|
| int rv = node_->MergePorts(local_port, from_node, connector_port_name);
|
|
|