Index: ipc/ipc_channel_posix.cc |
diff --git a/ipc/ipc_channel_posix.cc b/ipc/ipc_channel_posix.cc |
index 878853290016620a1276ce2707ed52b8a7fa7f9b..6bec1c11a8d66d026673f45247facd58a62a88c0 100644 |
--- a/ipc/ipc_channel_posix.cc |
+++ b/ipc/ipc_channel_posix.cc |
@@ -522,7 +522,10 @@ bool Channel::ChannelImpl::Send(Message* message) { |
message->TraceMessageBegin(); |
output_queue_.push(message); |
if (!is_blocked_on_write_ && !waiting_connect_) { |
- return ProcessOutgoingMessages(); |
+ if (!ProcessOutgoingMessages()) { |
+ ClosePipeOnError(); |
+ return false; |
+ } |
} |
return true; |