summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/SystemServer.java
diff options
context:
space:
mode:
authorJosh Gao <jmgao@google.com>2020-09-11 15:31:31 -0700
committerJosh Gao <jmgao@google.com>2021-01-11 13:56:10 -0800
commit192102c35b46521bbe5a900f5a3036a406801af4 (patch)
tree7d71e80654ebe35cac3fca80b700517c176c3245 /services/java/com/android/server/SystemServer.java
parent3ede7b493004b9c614f6c5ad21d38d8c39884470 (diff)
fdtrack: GC before checking fd count.
Test: treehugger Change-Id: I0f1d59ae4240a24f8b8e4b015c1923acb1140bce
Diffstat (limited to 'services/java/com/android/server/SystemServer.java')
-rw-r--r--services/java/com/android/server/SystemServer.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index 4c33ad39a9b8..2b54599ec873 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -439,6 +439,12 @@ public final class SystemServer {
boolean enabled = false;
while (true) {
int maxFd = getMaxFd();
+ if (maxFd > enableThreshold) {
+ // Do a manual GC to clean up fds that are hanging around as garbage.
+ System.gc();
+ maxFd = getMaxFd();
+ }
+
if (maxFd > enableThreshold && !enabled) {
Slog.i("System", "fdtrack enable threshold reached, enabling");
System.loadLibrary("fdtrack");