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

Commit f5243e97 authored by Winson Chiu's avatar Winson Chiu Committed by Automerger Merge Worker
Browse files

Merge "Fix high traffic PMS lockless methods" into tm-dev am: f3f7f92e

parents 6158f388 f3f7f92e
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -418,7 +418,9 @@ public final class AppsFilterImpl extends AppsFilterLocked implements Watchable,
        } else if (changed) {
        } else if (changed) {
            invalidateCache("grantImplicitAccess: " + recipientUid + " -> " + visibleUid);
            invalidateCache("grantImplicitAccess: " + recipientUid + " -> " + visibleUid);
        }
        }
        if (changed) {
            onChanged();
            onChanged();
        }
        return changed;
        return changed;
    }
    }


+7 −4
Original line number Original line Diff line number Diff line
@@ -2859,12 +2859,15 @@ public class PackageManagerService implements PackageSender, TestUtilityService
        mDexOptHelper.performPackageDexOptUpgradeIfNeeded();
        mDexOptHelper.performPackageDexOptUpgradeIfNeeded();
    }
    }



    private void notifyPackageUseInternal(String packageName, int reason) {
    private void notifyPackageUseInternal(String packageName, int reason) {
        long time = System.currentTimeMillis();
        long time = System.currentTimeMillis();
        commitPackageStateMutation(null, packageName, packageState -> {
        synchronized (mLock) {
            packageState.setLastPackageUsageTime(reason, time);
            final PackageSetting pkgSetting = mSettings.getPackageLPr(packageName);
        });
            if (pkgSetting == null) {
                return;
            }
            pkgSetting.getPkgState().setLastPackageUsageTimeInMills(reason, time);
        }
    }
    }


    /*package*/ DexManager getDexManager() {
    /*package*/ DexManager getDexManager() {
+4 −1
Original line number Original line Diff line number Diff line
@@ -79,7 +79,10 @@ public class PackageStateUnserialized {
            return this;
            return this;
        }
        }
        getLastPackageUsageTimeInMills()[reason] = time;
        getLastPackageUsageTimeInMills()[reason] = time;
        mPackageSetting.onChanged();
        // TODO(b/236180425): This method does not notify snapshot changes because it's called too
        //  frequently, causing too many re-takes. This should be moved to a separate data structure
        //  or merged with the general UsageStats to avoid tracking heavily mutated data in the
        //  package data snapshot.
        return this;
        return this;
    }
    }