Chromium Code Reviews| Index: ipc/ipc_channel_posix.h |
| diff --git a/ipc/ipc_channel_posix.h b/ipc/ipc_channel_posix.h |
| index a65283d3beace7fafdd02f9c74b9acb68ad84b96..58c5a058734aa122d43282e255ef50c0e42e7e50 100644 |
| --- a/ipc/ipc_channel_posix.h |
| +++ b/ipc/ipc_channel_posix.h |
| @@ -174,25 +174,17 @@ class IPC_EXPORT ChannelPosix : public Channel, |
| // Messages to be sent are queued here. |
| std::queue<Message*> output_queue_; |
| - // We assume a worst case: kReadBufferSize bytes of messages, where each |
| - // message has no payload and a full complement of descriptors. |
| - static const size_t kMaxReadFDs = |
| - (Channel::kReadBufferSize / sizeof(IPC::Message::Header)) * |
| - MessageAttachmentSet::kMaxDescriptorsPerMessage; |
| - |
| - // Buffer size for file descriptors used for recvmsg. On Mac the CMSG macros |
| - // don't seem to be constant so we have to pick a "large enough" value. |
| -#if defined(OS_MACOSX) |
| - static const size_t kMaxReadFDBuffer = 1024; |
| -#else |
| - static const size_t kMaxReadFDBuffer = CMSG_SPACE(sizeof(int) * kMaxReadFDs); |
| -#endif |
| - |
| - // Temporary buffer used to receive the file descriptors from recvmsg. |
| - // Code that writes into this should immediately read them out and save |
| - // them to input_fds_, since this buffer will be re-used anytime we call |
| - // recvmsg. |
| - char input_cmsg_buf_[kMaxReadFDBuffer]; |
| + // Worst case for file descriptors would be : kReadBufferSize bytes |
| + // of messages, where each message has no payload and a full |
| + // complement of descriptors: |
| + // CMSG_SPACE(sizeof(int) * |
| + // (Channel::kReadBufferSize / sizeof(IPC::Message::Header)) * |
| + // MessageAttachmentSet::kMaxDescriptorsPerMessage) |
| + // |
| + // If we allocate memory for that in recvmsg we would waste hundreds |
| + // of KB. Instead we note that we will only send file descriptors |
|
Mark Seaborn
2015/05/06 17:50:16
This assumption seems rather risky to me, because
|
| + // occasionally and use a reasonable buffer of 8 KB. |
| + static const size_t kMaxReadFDBuffer = 8192; |
| // File descriptors extracted from messages coming off of the channel. The |
| // handles may span messages and come off different channels from the message |