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

Commit 2dabdcb3 authored by Kweku Adams's avatar Kweku Adams
Browse files

Updating method names.

Some methods were required to only be called with the lock held but
didn't have "Locked" in their name. Adding the suffix and updating tests
to make sure we call them appropriately.

Bug: 141645789
Test: atest QuotaControllerTest
Change-Id: I5fe9b7bd1eb791bdcc245cf3609b26ec75541b91
parent e3995878
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -3139,7 +3139,9 @@ public class JobSchedulerService extends com.android.server.SystemService
    }

    void resetExecutionQuota(@NonNull String pkgName, int userId) {
        mQuotaController.clearAppStats(userId, pkgName);
        synchronized (mLock) {
            mQuotaController.clearAppStatsLocked(userId, pkgName);
        }
    }

    void resetScheduleQuota() {
+8 −7
Original line number Diff line number Diff line
@@ -576,7 +576,7 @@ public final class QuotaController extends StateController {
            Slog.wtf(TAG, "Told app removed but given null package name.");
            return;
        }
        clearAppStats(UserHandle.getUserId(uid), packageName);
        clearAppStatsLocked(UserHandle.getUserId(uid), packageName);
        mForegroundUids.delete(uid);
        mUidToPackageCache.remove(uid);
    }
@@ -592,7 +592,7 @@ public final class QuotaController extends StateController {
    }

    /** Drop all historical stats and stop tracking any active sessions for the specified app. */
    public void clearAppStats(int userId, @NonNull String packageName) {
    public void clearAppStatsLocked(int userId, @NonNull String packageName) {
        mTrackedJobs.delete(userId, packageName);
        Timer timer = mPkgTimers.get(userId, packageName);
        if (timer != null) {
@@ -1008,7 +1008,7 @@ public final class QuotaController extends StateController {
    }

    @VisibleForTesting
    void incrementJobCount(final int userId, @NonNull final String packageName, int count) {
    void incrementJobCountLocked(final int userId, @NonNull final String packageName, int count) {
        final long now = sElapsedRealtimeClock.millis();
        ExecutionStats[] appStats = mExecutionStatsCache.get(userId, packageName);
        if (appStats == null) {
@@ -1029,7 +1029,8 @@ public final class QuotaController extends StateController {
        }
    }

    private void incrementTimingSessionCount(final int userId, @NonNull final String packageName) {
    private void incrementTimingSessionCountLocked(final int userId,
            @NonNull final String packageName) {
        final long now = sElapsedRealtimeClock.millis();
        ExecutionStats[] appStats = mExecutionStatsCache.get(userId, packageName);
        if (appStats == null) {
@@ -1481,7 +1482,7 @@ public final class QuotaController extends StateController {
            mRunningBgJobs.add(jobStatus);
            if (shouldTrackLocked()) {
                mBgJobCount++;
                incrementJobCount(mPkg.userId, mPkg.packageName, 1);
                incrementJobCountLocked(mPkg.userId, mPkg.packageName, 1);
                if (mRunningBgJobs.size() == 1) {
                    // Started tracking the first job.
                    mStartTimeElapsed = sElapsedRealtimeClock.millis();
@@ -1534,7 +1535,7 @@ public final class QuotaController extends StateController {
            // of jobs.
            // However, cancel the currently scheduled cutoff since it's not currently useful.
            cancelCutoff();
            incrementTimingSessionCount(mPkg.userId, mPkg.packageName);
            incrementTimingSessionCountLocked(mPkg.userId, mPkg.packageName);
        }

        /**
@@ -1581,7 +1582,7 @@ public final class QuotaController extends StateController {
                    // repeatedly plugged in and unplugged, or an app changes foreground state
                    // very frequently, the job count for a package may be artificially high.
                    mBgJobCount = mRunningBgJobs.size();
                    incrementJobCount(mPkg.userId, mPkg.packageName, mBgJobCount);
                    incrementJobCountLocked(mPkg.userId, mPkg.packageName, mBgJobCount);
                    // Starting the timer means that all cached execution stats are now
                    // incorrect.
                    invalidateAllExecutionStatsLocked(mPkg.userId, mPkg.packageName);
+6 −5
Original line number Diff line number Diff line
@@ -1430,8 +1430,8 @@ public class QuotaControllerTest {
                createTimingSession(now - (HOUR_IN_MILLIS), 3 * MINUTE_IN_MILLIS, 5));
        mQuotaController.saveTimingSession(0, "com.android.test",
                createTimingSession(now - (5 * MINUTE_IN_MILLIS), 3 * MINUTE_IN_MILLIS, 5));
        mQuotaController.incrementJobCount(0, "com.android.test", 5);
        synchronized (mQuotaController.mLock) {
            mQuotaController.incrementJobCountLocked(0, "com.android.test", 5);
            assertTrue(mQuotaController.isWithinQuotaLocked(0, "com.android.test", WORKING_INDEX));
        }
    }
@@ -1445,8 +1445,8 @@ public class QuotaControllerTest {
                createTimingSession(now - (HOUR_IN_MILLIS), 15 * MINUTE_IN_MILLIS, 25));
        mQuotaController.saveTimingSession(0, "com.android.test.spam",
                createTimingSession(now - (5 * MINUTE_IN_MILLIS), 3 * MINUTE_IN_MILLIS, jobCount));
        mQuotaController.incrementJobCount(0, "com.android.test.spam", jobCount);
        synchronized (mQuotaController.mLock) {
            mQuotaController.incrementJobCountLocked(0, "com.android.test.spam", jobCount);
            assertFalse(mQuotaController.isWithinQuotaLocked(
                    0, "com.android.test.spam", WORKING_INDEX));
        }
@@ -1471,8 +1471,8 @@ public class QuotaControllerTest {
                createTimingSession(now - (30 * MINUTE_IN_MILLIS), 3 * MINUTE_IN_MILLIS, 5));
        mQuotaController.saveTimingSession(0, "com.android.test",
                createTimingSession(now - (5 * MINUTE_IN_MILLIS), 4 * MINUTE_IN_MILLIS, 5));
        mQuotaController.incrementJobCount(0, "com.android.test", 5);
        synchronized (mQuotaController.mLock) {
            mQuotaController.incrementJobCountLocked(0, "com.android.test", 5);
            assertFalse(mQuotaController.isWithinQuotaLocked(0, "com.android.test", WORKING_INDEX));
        }
    }
@@ -1486,8 +1486,8 @@ public class QuotaControllerTest {
                createTimingSession(now - (HOUR_IN_MILLIS), 15 * MINUTE_IN_MILLIS, 25));
        mQuotaController.saveTimingSession(0, "com.android.test",
                createTimingSession(now - (5 * MINUTE_IN_MILLIS), 3 * MINUTE_IN_MILLIS, jobCount));
        mQuotaController.incrementJobCount(0, "com.android.test", jobCount);
        synchronized (mQuotaController.mLock) {
            mQuotaController.incrementJobCountLocked(0, "com.android.test", jobCount);
            assertFalse(mQuotaController.isWithinQuotaLocked(0, "com.android.test", WORKING_INDEX));
        }
    }
@@ -1637,9 +1637,10 @@ public class QuotaControllerTest {
            mQuotaController.saveTimingSession(0, "com.android.test",
                    createTimingSession(now - ((10 - i) * MINUTE_IN_MILLIS), 30 * SECOND_IN_MILLIS,
                            2));
            mQuotaController.incrementJobCount(0, "com.android.test", 2);

            synchronized (mQuotaController.mLock) {
                mQuotaController.incrementJobCountLocked(0, "com.android.test", 2);

                assertEquals("Rare has incorrect quota status with " + (i + 1) + " sessions",
                        i < 2,
                        mQuotaController.isWithinQuotaLocked(0, "com.android.test", RARE_INDEX));