summaryrefslogtreecommitdiffstats
path: root/chromium/base/process/process_metrics_posix.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/base/process/process_metrics_posix.cc')
-rw-r--r--chromium/base/process/process_metrics_posix.cc17
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