Merge "Fix the PMS live computer" into sc-dev

This commit is contained in:
Lee Shombert
2021-03-01 18:17:09 +00:00
committed by Android (Google) Code Review

View File

@@ -4634,7 +4634,7 @@ public class PackageManagerService extends IPackageManager.Stub
* computer engine. This is required because there are no locks taken in * computer engine. This is required because there are no locks taken in
* the engine itself. * the engine itself.
*/ */
private static class ComputerLocked extends ComputerEngine { private static class ComputerLocked extends ComputerEngineLive {
private final Object mLock; private final Object mLock;
ComputerLocked(Snapshot args) { ComputerLocked(Snapshot args) {
@@ -4642,16 +4642,6 @@ public class PackageManagerService extends IPackageManager.Stub
mLock = mService.mLock; mLock = mService.mLock;
} }
protected ComponentName resolveComponentName() {
return mService.mResolveComponentName;
}
protected ActivityInfo instantAppInstallerActivity() {
return mService.mInstantAppInstallerActivity;
}
protected ApplicationInfo androidApplication() {
return mService.mAndroidApplication;
}
public @NonNull List<ResolveInfo> queryIntentServicesInternalBody(Intent intent, public @NonNull List<ResolveInfo> queryIntentServicesInternalBody(Intent intent,
String resolvedType, int flags, int userId, int callingUid, String resolvedType, int flags, int userId, int callingUid,
String instantAppPkgName) { String instantAppPkgName) {
@@ -4781,8 +4771,9 @@ public class PackageManagerService extends IPackageManager.Stub
} }
// Compute read-only functions, based on live data. // Compute read-only functions, based on live data. This attribute may be modified multiple
private final Computer mLiveComputer; // times during the PackageManagerService constructor but it should not be modified thereafter.
private Computer mLiveComputer;
// A lock-free cache for frequently called functions. // A lock-free cache for frequently called functions.
private volatile Computer mSnapshotComputer; private volatile Computer mSnapshotComputer;
// If true, the snapshot is invalid (stale). The attribute is static since it may be // If true, the snapshot is invalid (stale). The attribute is static since it may be
@@ -6401,8 +6392,9 @@ public class PackageManagerService extends IPackageManager.Stub
// constructor. // constructor.
mSnapshotEnabled = SNAPSHOT_ENABLED; mSnapshotEnabled = SNAPSHOT_ENABLED;
sSnapshotCorked = true; sSnapshotCorked = true;
sSnapshotInvalid = true;
mLiveComputer = createLiveComputer(); mLiveComputer = createLiveComputer();
mSnapshotComputer = mLiveComputer; mSnapshotComputer = null;
registerObserver(); registerObserver();
// CHECKSTYLE:OFF IndentationCheck // CHECKSTYLE:OFF IndentationCheck
@@ -7081,6 +7073,10 @@ public class PackageManagerService extends IPackageManager.Stub
BOOT_TIME_EVENT_DURATION__EVENT__OTA_PACKAGE_MANAGER_INIT_TIME, BOOT_TIME_EVENT_DURATION__EVENT__OTA_PACKAGE_MANAGER_INIT_TIME,
SystemClock.uptimeMillis() - startTime); SystemClock.uptimeMillis() - startTime);
} }
// Rebild the live computer since some attributes have been rebuilt.
mLiveComputer = createLiveComputer();
} // synchronized (mLock) } // synchronized (mLock)
} // synchronized (mInstallLock) } // synchronized (mInstallLock)
// CHECKSTYLE:ON IndentationCheck // CHECKSTYLE:ON IndentationCheck