diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2022-06-23 06:34:41 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-06-23 06:34:41 +0000 |
commit | 37e033dbc3f2a14c843c880919ea6277499834e5 (patch) | |
tree | 3f808bc4d523e08a9c273500e5e3d79e1a9c7768 | |
parent | 725d1534ad9223db7c0c84430a90ae7e626e7a86 (diff) | |
parent | f0f1fb99fe6b3e83350200cdafb72b9bdec42088 (diff) | |
download | base-37e033dbc3f2a14c843c880919ea6277499834e5.tar.gz |
Merge "Immediately notify VM of TOP process state" into tm-dev
-rw-r--r-- | core/java/android/app/ActivityThread.java | 33 |
1 files changed, 1 insertions, 32 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 1d1743f56ff7..ae8809d8ac29 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -274,11 +274,6 @@ public final class ActivityThread extends ClientTransactionHandler public static final boolean DEBUG_ORDER = false; private static final long MIN_TIME_BETWEEN_GCS = 5*1000; /** - * If the activity doesn't become idle in time, the timeout will ensure to apply the pending top - * process state. - */ - private static final long PENDING_TOP_PROCESS_STATE_TIMEOUT = 1000; - /** * The delay to release the provider when it has no more references. It reduces the number of * transactions for acquiring and releasing provider if the client accesses the provider * frequently in a short time. @@ -367,8 +362,6 @@ public final class ActivityThread extends ClientTransactionHandler private final AtomicInteger mNumLaunchingActivities = new AtomicInteger(); @GuardedBy("mAppThread") private int mLastProcessState = PROCESS_STATE_UNKNOWN; - @GuardedBy("mAppThread") - private int mPendingProcessState = PROCESS_STATE_UNKNOWN; ArrayList<WeakReference<AssistStructure>> mLastAssistStructures = new ArrayList<>(); private int mLastSessionId; final ArrayMap<IBinder, CreateServiceData> mServicesData = new ArrayMap<>(); @@ -2384,7 +2377,6 @@ public final class ActivityThread extends ClientTransactionHandler if (stopProfiling) { mProfiler.stopProfiling(); } - applyPendingProcessState(); return false; } } @@ -3452,16 +3444,7 @@ public final class ActivityThread extends ClientTransactionHandler } wasCached = isCachedProcessState(); mLastProcessState = processState; - // Defer the top state for VM to avoid aggressive JIT compilation affecting activity - // launch time. - if (processState == ActivityManager.PROCESS_STATE_TOP - && mNumLaunchingActivities.get() > 0) { - mPendingProcessState = processState; - mH.postDelayed(this::applyPendingProcessState, PENDING_TOP_PROCESS_STATE_TIMEOUT); - } else { - mPendingProcessState = PROCESS_STATE_UNKNOWN; - updateVmProcessState(processState); - } + updateVmProcessState(processState); if (localLOGV) { Slog.i(TAG, "******************* PROCESS STATE CHANGED TO: " + processState + (fromIpc ? " (from ipc" : "")); @@ -3495,20 +3478,6 @@ public final class ActivityThread extends ClientTransactionHandler VMRuntime.getRuntime().updateProcessState(state); } - private void applyPendingProcessState() { - synchronized (mAppThread) { - if (mPendingProcessState == PROCESS_STATE_UNKNOWN) { - return; - } - final int pendingState = mPendingProcessState; - mPendingProcessState = PROCESS_STATE_UNKNOWN; - // Only apply the pending state if the last state doesn't change. - if (pendingState == mLastProcessState) { - updateVmProcessState(pendingState); - } - } - } - @Override public void countLaunchingActivities(int num) { mNumLaunchingActivities.getAndAdd(num); |