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

Commit 8717530d authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "Workaround for USAP support in jitzygote." into qt-dev am:...

Merge "Merge "Workaround for USAP support in jitzygote." into qt-dev am: 94b29818 am: 660fa540 am: 7adeb8cc"
parents 89a7820c b112545d
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -640,15 +640,10 @@ 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));
        }
        }

        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;