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
This commit is contained in:
Kweku Adams
2020-11-09 13:21:56 -08:00
parent e3995878b2
commit 2dabdcb391
3 changed files with 17 additions and 13 deletions

View File

@@ -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() {

View File

@@ -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);

View File

@@ -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));