Loading services/core/java/com/android/server/am/BroadcastConstants.java +12 −0 Original line number Diff line number Diff line Loading @@ -298,6 +298,15 @@ public class BroadcastConstants { private static final long DEFAULT_PENDING_COLD_START_ABANDON_TIMEOUT_MILLIS = TimeUnit.MINUTES.toMillis(5); /** * For {@link BroadcastQueueImpl}: Threshold of pending broadcasts for triggering a trace * event indicating a potential issue. */ public int EXCESSIVE_PENDING_BROADCASTS = DEFAULT_EXCESSIVE_PENDING_BROADCASTS; private static final String KEY_EXCESSIVE_PENDING_BROADCASTS = "excessive_pending_broadcasts"; private static final int DEFAULT_EXCESSIVE_PENDING_BROADCASTS = 5000; // Settings override tracking for this instance private String mSettingsKey; private SettingsObserver mSettingsObserver; Loading Loading @@ -450,6 +459,8 @@ public class BroadcastConstants { KEY_PENDING_COLD_START_ABANDON_TIMEOUT_MILLIS, DEFAULT_PENDING_COLD_START_ABANDON_TIMEOUT_MILLIS) * Build.HW_TIMEOUT_MULTIPLIER; EXCESSIVE_PENDING_BROADCASTS = getDeviceConfigInt(KEY_EXCESSIVE_PENDING_BROADCASTS, DEFAULT_EXCESSIVE_PENDING_BROADCASTS); } // TODO: migrate BroadcastRecord to accept a BroadcastConstants Loading Loading @@ -509,6 +520,7 @@ public class BroadcastConstants { MAX_FROZEN_OUTGOING_BROADCASTS).println(); pw.print(KEY_PENDING_COLD_START_ABANDON_TIMEOUT_MILLIS, PENDING_COLD_START_ABANDON_TIMEOUT_MILLIS).println(); pw.print(KEY_EXCESSIVE_PENDING_BROADCASTS, EXCESSIVE_PENDING_BROADCASTS).println(); pw.decreaseIndent(); pw.println(); } Loading services/core/java/com/android/server/am/BroadcastHistory.java +4 −0 Original line number Diff line number Diff line Loading @@ -151,6 +151,10 @@ public class BroadcastHistory { mSummaryHistoryNext = ringAdvance(mSummaryHistoryNext, 1, MAX_BROADCAST_SUMMARY_HISTORY); } public int getPendingBroadcastsCount() { return mPendingBroadcasts.size(); } private int ringAdvance(int x, final int increment, final int ringSize) { x += increment; if (x < 0) return (ringSize - 1); Loading services/core/java/com/android/server/am/BroadcastQueueImpl.java +3 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,6 @@ import android.text.format.DateUtils; import android.util.ArrayMap; import android.util.ArraySet; import android.util.IndentingPrintWriter; import android.util.MathUtils; import android.util.Pair; import android.util.Slog; import android.util.SparseArray; Loading Loading @@ -1996,6 +1995,9 @@ class BroadcastQueueImpl extends BroadcastQueue { leaf = leaf.processNameNext; } } checkState(mHistory.getPendingBroadcastsCount() < mConstants.EXCESSIVE_PENDING_BROADCASTS, "excessive pending broadcasts"); } @SuppressWarnings("CheckResult") Loading Loading
services/core/java/com/android/server/am/BroadcastConstants.java +12 −0 Original line number Diff line number Diff line Loading @@ -298,6 +298,15 @@ public class BroadcastConstants { private static final long DEFAULT_PENDING_COLD_START_ABANDON_TIMEOUT_MILLIS = TimeUnit.MINUTES.toMillis(5); /** * For {@link BroadcastQueueImpl}: Threshold of pending broadcasts for triggering a trace * event indicating a potential issue. */ public int EXCESSIVE_PENDING_BROADCASTS = DEFAULT_EXCESSIVE_PENDING_BROADCASTS; private static final String KEY_EXCESSIVE_PENDING_BROADCASTS = "excessive_pending_broadcasts"; private static final int DEFAULT_EXCESSIVE_PENDING_BROADCASTS = 5000; // Settings override tracking for this instance private String mSettingsKey; private SettingsObserver mSettingsObserver; Loading Loading @@ -450,6 +459,8 @@ public class BroadcastConstants { KEY_PENDING_COLD_START_ABANDON_TIMEOUT_MILLIS, DEFAULT_PENDING_COLD_START_ABANDON_TIMEOUT_MILLIS) * Build.HW_TIMEOUT_MULTIPLIER; EXCESSIVE_PENDING_BROADCASTS = getDeviceConfigInt(KEY_EXCESSIVE_PENDING_BROADCASTS, DEFAULT_EXCESSIVE_PENDING_BROADCASTS); } // TODO: migrate BroadcastRecord to accept a BroadcastConstants Loading Loading @@ -509,6 +520,7 @@ public class BroadcastConstants { MAX_FROZEN_OUTGOING_BROADCASTS).println(); pw.print(KEY_PENDING_COLD_START_ABANDON_TIMEOUT_MILLIS, PENDING_COLD_START_ABANDON_TIMEOUT_MILLIS).println(); pw.print(KEY_EXCESSIVE_PENDING_BROADCASTS, EXCESSIVE_PENDING_BROADCASTS).println(); pw.decreaseIndent(); pw.println(); } Loading
services/core/java/com/android/server/am/BroadcastHistory.java +4 −0 Original line number Diff line number Diff line Loading @@ -151,6 +151,10 @@ public class BroadcastHistory { mSummaryHistoryNext = ringAdvance(mSummaryHistoryNext, 1, MAX_BROADCAST_SUMMARY_HISTORY); } public int getPendingBroadcastsCount() { return mPendingBroadcasts.size(); } private int ringAdvance(int x, final int increment, final int ringSize) { x += increment; if (x < 0) return (ringSize - 1); Loading
services/core/java/com/android/server/am/BroadcastQueueImpl.java +3 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,6 @@ import android.text.format.DateUtils; import android.util.ArrayMap; import android.util.ArraySet; import android.util.IndentingPrintWriter; import android.util.MathUtils; import android.util.Pair; import android.util.Slog; import android.util.SparseArray; Loading Loading @@ -1996,6 +1995,9 @@ class BroadcastQueueImpl extends BroadcastQueue { leaf = leaf.processNameNext; } } checkState(mHistory.getPendingBroadcastsCount() < mConstants.EXCESSIVE_PENDING_BROADCASTS, "excessive pending broadcasts"); } @SuppressWarnings("CheckResult") Loading