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

Commit 94b29818 authored by Nicolas Geoffray's avatar Nicolas Geoffray Committed by Android (Google) Code Review
Browse files

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

parents 141e7b03 e66a2bf2
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;