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

Commit c8117c8a authored by Kweku Adams's avatar Kweku Adams
Browse files

Add missing locks.

Bug: 178387978
Test: atest QuotaControllerTest
Change-Id: Ia78d356dc632460b21ef02d748527e2294b1d10e
parent 770e6072
Loading
Loading
Loading
Loading
+25 −21
Original line number Diff line number Diff line
@@ -2296,9 +2296,10 @@ public final class QuotaController extends StateController {

        @Override
        public void onAppAdded(int uid) {
            synchronized (mLock) {
                final long nowElapsed = sElapsedRealtimeClock.millis();
                mTempAllowlistCache.put(uid, true);
            final ArraySet<String> packages = getPackagesForUid(uid);
                final ArraySet<String> packages = getPackagesForUidLocked(uid);
                if (packages != null) {
                    final int userId = UserHandle.getUserId(uid);
                    for (int i = packages.size() - 1; i >= 0; --i) {
@@ -2312,9 +2313,11 @@ public final class QuotaController extends StateController {
                    }
                }
            }
        }

        @Override
        public void onAppRemoved(int uid) {
            synchronized (mLock) {
                final long nowElapsed = sElapsedRealtimeClock.millis();
                final long endElapsed = nowElapsed + mEJTempAllowlistGracePeriodMs;
                mTempAllowlistCache.delete(uid);
@@ -2323,6 +2326,7 @@ public final class QuotaController extends StateController {
                mHandler.sendMessageDelayed(msg, mEJTempAllowlistGracePeriodMs);
            }
        }
    }

    private final class DeleteTimingSessionsFunctor implements Consumer<List<TimingSession>> {
        private final Predicate<TimingSession> mTooOld = new Predicate<TimingSession>() {
@@ -2351,7 +2355,7 @@ public final class QuotaController extends StateController {
    }

    @Nullable
    private ArraySet<String> getPackagesForUid(final int uid) {
    private ArraySet<String> getPackagesForUidLocked(final int uid) {
        ArraySet<String> packages = mUidToPackageCache.get(uid);
        if (packages == null) {
            try {
@@ -2475,7 +2479,7 @@ public final class QuotaController extends StateController {
                            // Update Timers first.
                            if (mPkgTimers.indexOfKey(userId) >= 0
                                    || mEJPkgTimers.indexOfKey(userId) >= 0) {
                                final ArraySet<String> packages = getPackagesForUid(uid);
                                final ArraySet<String> packages = getPackagesForUidLocked(uid);
                                if (packages != null) {
                                    for (int i = packages.size() - 1; i >= 0; --i) {
                                        Timer t = mEJPkgTimers.get(userId, packages.valueAt(i));
@@ -2544,7 +2548,7 @@ public final class QuotaController extends StateController {
                            if (DEBUG) {
                                Slog.d(TAG, uid + " is now out of grace period");
                            }
                            final ArraySet<String> packages = getPackagesForUid(uid);
                            final ArraySet<String> packages = getPackagesForUidLocked(uid);
                            if (packages != null) {
                                final int userId = UserHandle.getUserId(uid);
                                final long nowElapsed = sElapsedRealtimeClock.millis();