summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/os/ZygoteProcess.java21
1 files changed, 13 insertions, 8 deletions
diff --git a/core/java/android/os/ZygoteProcess.java b/core/java/android/os/ZygoteProcess.java
index 2b170c2a6587..3ea3bbc959e8 100644
--- a/core/java/android/os/ZygoteProcess.java
+++ b/core/java/android/os/ZygoteProcess.java
@@ -640,14 +640,9 @@ public class ZygoteProcess {
ZygoteConfig.USAP_POOL_ENABLED, USAP_POOL_ENABLED_DEFAULT);
if (!propertyString.isEmpty()) {
- if (SystemProperties.get("dalvik.vm.boot-image", "").endsWith("apex.art")) {
- // TODO(b/119800099): Tweak usap configuration in jitzygote mode.
- mUsapPoolEnabled = false;
- } else {
- mUsapPoolEnabled = Zygote.getConfigurationPropertyBoolean(
- ZygoteConfig.USAP_POOL_ENABLED,
- Boolean.parseBoolean(USAP_POOL_ENABLED_DEFAULT));
- }
+ mUsapPoolEnabled = Zygote.getConfigurationPropertyBoolean(
+ ZygoteConfig.USAP_POOL_ENABLED,
+ Boolean.parseBoolean(USAP_POOL_ENABLED_DEFAULT));
}
boolean valueChanged = origVal != mUsapPoolEnabled;
@@ -665,6 +660,16 @@ public class ZygoteProcess {
private boolean fetchUsapPoolEnabledPropWithMinInterval() {
final long currentTimestamp = SystemClock.elapsedRealtime();
+ if (SystemProperties.get("dalvik.vm.boot-image", "").endsWith("apex.art")) {
+ // TODO(b/119800099): In jitzygote mode, we want to start using USAP processes
+ // only once the boot classpath has been compiled. There is currently no callback
+ // from the runtime to notify the zygote about end of compilation, so for now just
+ // arbitrarily start USAP processes 15 seconds after boot.
+ if (currentTimestamp <= 15000) {
+ return false;
+ }
+ }
+
if (mIsFirstPropCheck
|| (currentTimestamp - mLastPropCheckTimestamp >= Zygote.PROPERTY_CHECK_INTERVAL)) {
mIsFirstPropCheck = false;