aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2022-02-09 23:16:10 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-02-09 23:16:10 +0000
commit26cb965d2f807cb8f1ff5c1204c0f43c428967e3 (patch)
tree408697b833b9df6e2272254be37a49b2e3b0ec4a
parent9deb87e8e29c8538d987159b105bb2019f32de27 (diff)
parent4ae119c14c78945056101c6ad7e95db1d0ca4250 (diff)
downloadsoong-android-s-v2-beta-3.tar.gz
Merge "In Soong, set max files soft limit to hard limit"android-s-v2-beta-3android-s-qpr3-beta-1android-s-v2-beta-3android-s-qpr3-beta-1
-rw-r--r--cmd/soong_ui/main.go30
1 files changed, 22 insertions, 8 deletions
diff --git a/cmd/soong_ui/main.go b/cmd/soong_ui/main.go
index d80051c77..a0cfbea5d 100644
--- a/cmd/soong_ui/main.go
+++ b/cmd/soong_ui/main.go
@@ -205,14 +205,7 @@ func main() {
buildCtx.Verbosef("Parallelism (local/remote/highmem): %v/%v/%v",
config.Parallel(), config.RemoteParallel(), config.HighmemParallel())
- {
- var limits syscall.Rlimit
- err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &limits)
- if err != nil {
- buildCtx.Verbosef("Failed to get file limit:", err)
- }
- buildCtx.Verbosef("Current file limits: %d soft, %d hard", limits.Cur, limits.Max)
- }
+ setMaxFiles(buildCtx)
{
// The order of the function calls is important. The last defer function call
@@ -614,3 +607,24 @@ func populateExternalDistDirHelper(ctx build.Context, config build.Config, inter
}
}
}
+
+func setMaxFiles(ctx build.Context) {
+ var limits syscall.Rlimit
+
+ err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &limits)
+ if err != nil {
+ ctx.Println("Failed to get file limit:", err)
+ return
+ }
+
+ ctx.Verbosef("Current file limits: %d soft, %d hard", limits.Cur, limits.Max)
+ if limits.Cur == limits.Max {
+ return
+ }
+
+ limits.Cur = limits.Max
+ err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &limits)
+ if err != nil {
+ ctx.Println("Failed to increase file limit:", err)
+ }
+}