Increase the open file limit on OS X to 1024
The default (256) is too low for pages that load a lot of resources all at once. See https://codereview.chromium.org/125151 and bugs like https://code.google.com/p/chromium/issues/detail?id=14137 and https://code.google.com/p/chromium/issues/detail?id=151039. The new limit matches what Chrome itself uses.
This commit is contained in:
parent
8b80473ef9
commit
f7fb6371c2
2 changed files with 31 additions and 0 deletions
|
@ -27,6 +27,7 @@ class BrowserMainParts : public content::BrowserMainParts {
|
|||
virtual BrowserContext* CreateBrowserContext();
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
virtual void PreEarlyInitialization() OVERRIDE;
|
||||
virtual void PreMainMessageLoopStart() OVERRIDE;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1,10 +1,40 @@
|
|||
#import "browser_main_parts.h"
|
||||
|
||||
#import "base/logging.h"
|
||||
#import "base/mac/bundle_locations.h"
|
||||
#import <AppKit/AppKit.h>
|
||||
|
||||
namespace brightray {
|
||||
|
||||
namespace {
|
||||
|
||||
// Sets the file descriptor soft limit to |max_descriptors| or the OS hard limit, whichever is
|
||||
// lower.
|
||||
void SetFileDescriptorLimit(rlim_t max_descriptors) {
|
||||
rlimit limits;
|
||||
if (getrlimit(RLIMIT_NOFILE, &limits) != 0) {
|
||||
PLOG(INFO) << "Failed to get file descriptor limit";
|
||||
return;
|
||||
}
|
||||
|
||||
auto new_limit = max_descriptors;
|
||||
if (limits.rlim_max > 0)
|
||||
new_limit = std::min(new_limit, limits.rlim_max);
|
||||
limits.rlim_cur = new_limit;
|
||||
if (setrlimit(RLIMIT_NOFILE, &limits) != 0)
|
||||
PLOG(INFO) << "Failed to set file descriptor limit";
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
void BrowserMainParts::PreEarlyInitialization() {
|
||||
// We use quite a few file descriptors for our IPC, and the default limit on the Mac is low (256),
|
||||
// so bump it up.
|
||||
// See http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/chrome_browser_main_posix.cc?revision=244734#l295
|
||||
// and https://codereview.chromium.org/125151
|
||||
SetFileDescriptorLimit(1024);
|
||||
}
|
||||
|
||||
// Replicates NSApplicationMain, but doesn't start a run loop.
|
||||
void BrowserMainParts::PreMainMessageLoopStart() {
|
||||
auto infoDictionary = base::mac::OuterBundle().infoDictionary;
|
||||
|
|
Loading…
Reference in a new issue