Index: ipc/ipc_channel_posix.cc |
diff --git a/ipc/ipc_channel_posix.cc b/ipc/ipc_channel_posix.cc |
index d6fa4735f721f09c4092e22c79d602f32f52be66..5800f928d145ee34931c477fde71cf296e4e3dd3 100644 |
--- a/ipc/ipc_channel_posix.cc |
+++ b/ipc/ipc_channel_posix.cc |
@@ -447,7 +447,7 @@ bool Channel::ChannelImpl::ProcessIncomingMessages() { |
// to the console. |
return false; |
#endif // defined(OS_MACOSX) |
- } else if (errno == ECONNRESET) { |
+ } else if (errno == ECONNRESET || errno == EPIPE) { |
return false; |
} else { |
PLOG(ERROR) << "pipe error (" << pipe_ << ")"; |
@@ -812,6 +812,10 @@ bool Channel::ChannelImpl::ProcessOutgoingMessages() { |
return false; |
} |
#endif // OS_MACOSX |
+ if (errno == EPIPE) { |
+ Close(); |
+ return false; |
+ } |
PLOG(ERROR) << "pipe error on " << fd_written; |
return false; |
} |