summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/SystemServer.java
diff options
context:
space:
mode:
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");