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:
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user