Loading core/java/com/android/internal/os/ZygoteServer.java +10 −3 Original line number Original line Diff line number Diff line Loading @@ -490,16 +490,23 @@ class ZygoteServer { if (mUsapPoolRefillTriggerTimestamp == INVALID_TIMESTAMP) { if (mUsapPoolRefillTriggerTimestamp == INVALID_TIMESTAMP) { pollTimeoutMs = -1; pollTimeoutMs = -1; } else { } else { int elapsedTimeMs = long elapsedTimeMs = System.currentTimeMillis() - mUsapPoolRefillTriggerTimestamp; (int) (System.currentTimeMillis() - mUsapPoolRefillTriggerTimestamp); if (elapsedTimeMs >= mUsapPoolRefillDelayMs) { if (elapsedTimeMs >= mUsapPoolRefillDelayMs) { // Normalize the poll timeout value when the time between one poll event and the // 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 // next pushes us over the delay value. This prevents poll receiving a 0 // timeout value, which would result in it returning immediately. // timeout value, which would result in it returning immediately. pollTimeoutMs = -1; pollTimeoutMs = -1; } else if (elapsedTimeMs <= 0) { // This can occur if the clock used by currentTimeMillis is reset, which is // possible because it is not guaranteed to be monotonic. Because we can't tell // how far back the clock was set the best way to recover is to simply re-start // the respawn delay countdown. pollTimeoutMs = mUsapPoolRefillDelayMs; } else { } else { pollTimeoutMs = mUsapPoolRefillDelayMs - elapsedTimeMs; pollTimeoutMs = (int) (mUsapPoolRefillDelayMs - elapsedTimeMs); } } } } Loading Loading
core/java/com/android/internal/os/ZygoteServer.java +10 −3 Original line number Original line Diff line number Diff line Loading @@ -490,16 +490,23 @@ class ZygoteServer { if (mUsapPoolRefillTriggerTimestamp == INVALID_TIMESTAMP) { if (mUsapPoolRefillTriggerTimestamp == INVALID_TIMESTAMP) { pollTimeoutMs = -1; pollTimeoutMs = -1; } else { } else { int elapsedTimeMs = long elapsedTimeMs = System.currentTimeMillis() - mUsapPoolRefillTriggerTimestamp; (int) (System.currentTimeMillis() - mUsapPoolRefillTriggerTimestamp); if (elapsedTimeMs >= mUsapPoolRefillDelayMs) { if (elapsedTimeMs >= mUsapPoolRefillDelayMs) { // Normalize the poll timeout value when the time between one poll event and the // 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 // next pushes us over the delay value. This prevents poll receiving a 0 // timeout value, which would result in it returning immediately. // timeout value, which would result in it returning immediately. pollTimeoutMs = -1; pollTimeoutMs = -1; } else if (elapsedTimeMs <= 0) { // This can occur if the clock used by currentTimeMillis is reset, which is // possible because it is not guaranteed to be monotonic. Because we can't tell // how far back the clock was set the best way to recover is to simply re-start // the respawn delay countdown. pollTimeoutMs = mUsapPoolRefillDelayMs; } else { } else { pollTimeoutMs = mUsapPoolRefillDelayMs - elapsedTimeMs; pollTimeoutMs = (int) (mUsapPoolRefillDelayMs - elapsedTimeMs); } } } } Loading