Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3cb2f4c3 authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android (Google) Code Review
Browse files

Merge "Simplify CachedAppOptimizer.freezeAppSync variants." into main

parents fd9010cd 47eb323c
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -1164,8 +1164,7 @@ final class ActivityManagerShellCommand extends ShellCommand {
        synchronized (mInternal) {
            synchronized (mInternal.mProcLock) {
                app.mOptRecord.setFreezeSticky(isSticky);
                mInternal.mOomAdjuster.mCachedAppOptimizer.freezeAppAsyncInternalLSP(
                        app, 0 /* delayMillis */, true /* force */, false /* immediate */);
                mInternal.mOomAdjuster.mCachedAppOptimizer.forceFreezeAppAsyncLSP(app);
            }
        }
        return 0;
+13 −7
Original line number Diff line number Diff line
@@ -1413,9 +1413,14 @@ public final class CachedAppOptimizer {
        freezeAppAsyncLSP(app, updateEarliestFreezableTime(app, mFreezerDebounceTimeout));
    }

    @GuardedBy({"mAm", "mProcLock"})
    void forceFreezeAppAsyncLSP(ProcessRecord app) {
        freezeAppAsyncInternalLSP(app, 0 /* delayMillis */, true /* force */);
    }

    @GuardedBy({"mAm", "mProcLock"})
    private void freezeAppAsyncLSP(ProcessRecord app, @UptimeMillisLong long delayMillis) {
        freezeAppAsyncInternalLSP(app, delayMillis, false, false);
        freezeAppAsyncInternalLSP(app, delayMillis, false /* force */);
    }

    @GuardedBy({"mAm", "mProcLock"})
@@ -1427,17 +1432,18 @@ public final class CachedAppOptimizer {
    // and remove this method.
    @GuardedBy({"mAm", "mProcLock"})
    void freezeAppAsyncImmediateLSP(ProcessRecord app) {
        freezeAppAsyncInternalLSP(app, 0, false, true);
        freezeAppAsyncInternalLSP(app, 0 /* delayMillis */, false /* force */);
    }

    // TODO: Update this method to be private and have the existing clients call different methods.
    // This "internal" method should not be directly triggered by clients outside this class.
    @GuardedBy({"mAm", "mProcLock"})
    void freezeAppAsyncInternalLSP(ProcessRecord app, @UptimeMillisLong long delayMillis,
            boolean force, boolean immediate) {
    private void freezeAppAsyncInternalLSP(ProcessRecord app, @UptimeMillisLong long delayMillis,
            boolean force) {
        final ProcessCachedOptimizerRecord opt = app.mOptRecord;
        if (opt.isPendingFreeze()) {
            if (immediate) {
            if (delayMillis == 0) {
                // Caller is requesting to freeze the process without delay, so remove
                // any already posted messages which would have been handled with a delay and
                // post a new message without a delay.
                mFreezeHandler.removeMessages(SET_FROZEN_PROCESS_MSG, app);
                mFreezeHandler.sendMessage(mFreezeHandler.obtainMessage(
                        SET_FROZEN_PROCESS_MSG, DO_FREEZE, 0, app));
+3 −4
Original line number Diff line number Diff line
@@ -36,7 +36,6 @@ import static com.android.server.am.ProcessList.SERVICE_ADJ;

import static org.junit.Assert.assertNotEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
@@ -185,8 +184,8 @@ public final class ServiceBindingOomAdjPolicyTest {
        doReturn(false).when(mAms.mAtmInternal).hasSystemAlertWindowPermission(anyInt(), anyInt(),
                any());
        doReturn(true).when(mAms.mOomAdjuster.mCachedAppOptimizer).useFreezer();
        doNothing().when(mAms.mOomAdjuster.mCachedAppOptimizer).freezeAppAsyncInternalLSP(
                any(), anyLong(), anyBoolean(), anyBoolean());
        doNothing().when(mAms.mOomAdjuster.mCachedAppOptimizer).freezeAppAsyncAtEarliestLSP(
                any());
        doReturn(false).when(mAms.mAppProfiler).updateLowMemStateLSP(anyInt(), anyInt(),
                anyInt(), anyLong());

@@ -503,7 +502,7 @@ public final class ServiceBindingOomAdjPolicyTest {
        if (clientApp.isFreezable()) {
            verify(mAms.mOomAdjuster.mCachedAppOptimizer,
                    times(Flags.serviceBindingOomAdjPolicy() ? 1 : 0))
                    .freezeAppAsyncInternalLSP(eq(clientApp), eq(0L), anyBoolean(), anyBoolean());
                    .freezeAppAsyncAtEarliestLSP(eq(clientApp));
            clearInvocations(mAms.mOomAdjuster.mCachedAppOptimizer);
        }