diff options
Diffstat (limited to 'chromium/base/process/process_metrics_posix.cc')
-rw-r--r-- | chromium/base/process/process_metrics_posix.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/chromium/base/process/process_metrics_posix.cc b/chromium/base/process/process_metrics_posix.cc index 531f6a40d70..ea79d7348ff 100644 --- a/chromium/base/process/process_metrics_posix.cc +++ b/chromium/base/process/process_metrics_posix.cc @@ -52,4 +52,21 @@ size_t GetMaxFds() { return static_cast<size_t>(max_fds); } + +void SetFdLimit(unsigned int max_descriptors) { + struct rlimit limits; + if (getrlimit(RLIMIT_NOFILE, &limits) == 0) { + unsigned int new_limit = max_descriptors; + if (limits.rlim_max > 0 && limits.rlim_max < max_descriptors) { + new_limit = limits.rlim_max; + } + limits.rlim_cur = new_limit; + if (setrlimit(RLIMIT_NOFILE, &limits) != 0) { + PLOG(INFO) << "Failed to set file descriptor limit"; + } + } else { + PLOG(INFO) << "Failed to get file descriptor limit"; + } +} + } // namespace base |