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

Commit 20b1fc4d authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Make the USAP Pool refill delay configurable. am: eabbf872 am: d5c2d5d7

Change-Id: I81cc2eea1731e891b5a76ea65b17f317b8a09997
parents a8f1b1a6 d5c2d5d7
Loading
Loading
Loading
Loading
+17 −7
Original line number Diff line number Diff line
@@ -66,11 +66,8 @@ class ZygoteServer {
    /** The default value used for the USAP_POOL_SIZE_MIN device property */
    private static final String USAP_POOL_SIZE_MIN_DEFAULT = "1";

    /**
     * Number of milliseconds to delay before refilling the pool if it hasn't reached its
     * minimum value.
     */
    private static final int USAP_REFILL_DELAY_MS = 3000;
    /** The default value used for the USAP_REFILL_DELAY_MS device property */
    private static final String USAP_POOL_REFILL_DELAY_MS_DEFAULT = "3000";

    /** The "not a timestamp" value for the refill delay timestamp mechanism. */
    private static final int INVALID_TIMESTAMP = -1;
@@ -140,6 +137,12 @@ class ZygoteServer {
     */
    private int mUsapPoolRefillThreshold = 0;

    /**
     * Number of milliseconds to delay before refilling the pool if it hasn't reached its
     * minimum value.
     */
    private int mUsapPoolRefillDelayMs = -1;

    private enum UsapPoolRefillAction {
        DELAYED,
        IMMEDIATE,
@@ -282,6 +285,13 @@ class ZygoteServer {
                        mUsapPoolSizeMax);
            }

            final String usapPoolRefillDelayMsPropString = Zygote.getConfigurationProperty(
                    ZygoteConfig.USAP_POOL_REFILL_DELAY_MS, USAP_POOL_REFILL_DELAY_MS_DEFAULT);

            if (!usapPoolRefillDelayMsPropString.isEmpty()) {
                mUsapPoolRefillDelayMs = Integer.parseInt(usapPoolRefillDelayMsPropString);
            }

            // Sanity check
            if (mUsapPoolSizeMin >= mUsapPoolSizeMax) {
                Log.w(TAG, "The max size of the USAP pool must be greater than the minimum size."
@@ -469,13 +479,13 @@ class ZygoteServer {
                int elapsedTimeMs =
                        (int) (System.currentTimeMillis() - usapPoolRefillTriggerTimestamp);

                if (elapsedTimeMs >= USAP_REFILL_DELAY_MS) {
                if (elapsedTimeMs >= mUsapPoolRefillDelayMs) {
                    // Normalize the poll timeout value when the time between one poll event and the
                    // next pushes us over the delay value.  This prevents poll receiving a 0
                    // timeout value, which would result in it returning immediately.
                    pollTimeoutMs = -1;
                } else {
                    pollTimeoutMs = USAP_REFILL_DELAY_MS - elapsedTimeMs;
                    pollTimeoutMs = mUsapPoolRefillDelayMs - elapsedTimeMs;
                }
            }