summaryrefslogtreecommitdiffstats
path: root/ipc/file_descriptor_set_posix.cc
diff options
context:
space:
mode:
authortommycli@chromium.org <tommycli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-29 21:15:44 +0000
committertommycli@chromium.org <tommycli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-29 21:15:44 +0000
commitab25b33481907b1feef324889aacfcf92049e000 (patch)
treead8093749b2c2115f42e8af8bc49510c73a25dcc /ipc/file_descriptor_set_posix.cc
parentd1f09fe57b851be9be710681c11a02ddddee242f (diff)
downloadchromium_src-ab25b33481907b1feef324889aacfcf92049e000.zip
chromium_src-ab25b33481907b1feef324889aacfcf92049e000.tar.gz
chromium_src-ab25b33481907b1feef324889aacfcf92049e000.tar.bz2
Increase maximum file descriptors per IPC message on POSIX from 5 to 7.
On POSIX, the maximum number of file descriptors passable in an IPC message is controlled by a constant 'kMaxDescriptorsPerMessage'. It's currently set at 5. This patch makes it 7. The Picasa album table reader utility process (https://codereview.chromium.org/18986012/) needs to pass 7 files to the utility process. This works on Windows, but fails on POSIX (Mac), due to the aforementioned limit. This CL increases this limit to 7, as well as adds some DLOG messages to give better info to developers who hit this limit. ipc_channel_posix.cc seems to indicate adding extra file descriptors just makes the messages longer by an 'int' per file descriptor. Making the maximum even larger would be okay with me too. BUG= Review URL: https://chromiumcodereview.appspot.com/23534018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220371 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc/file_descriptor_set_posix.cc')
-rw-r--r--ipc/file_descriptor_set_posix.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/ipc/file_descriptor_set_posix.cc b/ipc/file_descriptor_set_posix.cc
index 3cb5880..584efec 100644
--- a/ipc/file_descriptor_set_posix.cc
+++ b/ipc/file_descriptor_set_posix.cc
@@ -37,8 +37,10 @@ FileDescriptorSet::~FileDescriptorSet() {
}
bool FileDescriptorSet::Add(int fd) {
- if (descriptors_.size() == kMaxDescriptorsPerMessage)
+ if (descriptors_.size() == kMaxDescriptorsPerMessage) {
+ DLOG(WARNING) << "Cannot add file descriptor. FileDescriptorSet full.";
return false;
+ }
struct base::FileDescriptor sd;
sd.fd = fd;
@@ -48,8 +50,10 @@ bool FileDescriptorSet::Add(int fd) {
}
bool FileDescriptorSet::AddAndAutoClose(int fd) {
- if (descriptors_.size() == kMaxDescriptorsPerMessage)
+ if (descriptors_.size() == kMaxDescriptorsPerMessage) {
+ DLOG(WARNING) << "Cannot add file descriptor. FileDescriptorSet full.";
return false;
+ }
struct base::FileDescriptor sd;
sd.fd = fd;