OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "mojo/system/channel.h" | 5 #include "mojo/system/channel.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 it->second.message_pipe = NULL; | 251 it->second.message_pipe = NULL; |
252 should_send_remove_message = | 252 should_send_remove_message = |
253 (remote_id != MessageInTransit::kInvalidEndpointId); | 253 (remote_id != MessageInTransit::kInvalidEndpointId); |
254 break; | 254 break; |
255 case EndpointInfo::STATE_WAIT_LOCAL_DETACH: | 255 case EndpointInfo::STATE_WAIT_LOCAL_DETACH: |
256 local_id_to_endpoint_info_map_.erase(it); | 256 local_id_to_endpoint_info_map_.erase(it); |
257 break; | 257 break; |
258 case EndpointInfo::STATE_WAIT_REMOTE_REMOVE_ACK: | 258 case EndpointInfo::STATE_WAIT_REMOTE_REMOVE_ACK: |
259 NOTREACHED(); | 259 NOTREACHED(); |
260 break; | 260 break; |
261 case EndpointInfo::STATE_WAIT_LOCAL_DETACH_AND_REMOTE_REMOVE_ACK: | |
262 it->second.state = EndpointInfo::STATE_WAIT_REMOTE_REMOVE_ACK; | |
263 break; | |
264 } | 261 } |
265 } | 262 } |
266 if (!should_send_remove_message) | 263 if (!should_send_remove_message) |
267 return; | 264 return; |
268 | 265 |
269 if (!SendControlMessage( | 266 if (!SendControlMessage( |
270 MessageInTransit::kSubtypeChannelRemoveMessagePipeEndpoint, | 267 MessageInTransit::kSubtypeChannelRemoveMessagePipeEndpoint, |
271 local_id, | 268 local_id, |
272 remote_id)) { | 269 remote_id)) { |
273 HandleLocalError(base::StringPrintf( | 270 HandleLocalError(base::StringPrintf( |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
528 // TODO(vtl): Is this how we really want to handle this? | 525 // TODO(vtl): Is this how we really want to handle this? |
529 // Sometimes we'll want to propagate the error back to the message pipe | 526 // Sometimes we'll want to propagate the error back to the message pipe |
530 // (endpoint), and notify it that the remote is (effectively) closed. | 527 // (endpoint), and notify it that the remote is (effectively) closed. |
531 // Sometimes we'll want to kill the channel (and notify all the endpoints that | 528 // Sometimes we'll want to kill the channel (and notify all the endpoints that |
532 // their remotes are dead. | 529 // their remotes are dead. |
533 LOG(WARNING) << error_message; | 530 LOG(WARNING) << error_message; |
534 } | 531 } |
535 | 532 |
536 } // namespace system | 533 } // namespace system |
537 } // namespace mojo | 534 } // namespace mojo |
OLD | NEW |