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

Commit 82dc85af authored by Martijn Coenen's avatar Martijn Coenen
Browse files

Speed up Zygote connection retry.

For the app zygote, the time to connect to the Zygote is in the critical
path for the (first) isolated service start. Speed up the retry.

Bug: 111434506
Test: atest CtsApptestCases:ServiceTest
Change-Id: I634a7b45e3065744e3d15287453327eca763660f
parent 6ab2e4a9
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -73,6 +73,19 @@ public class ZygoteProcess {
     */
    public static final String ZYGOTE_SECONDARY_SOCKET_NAME = "zygote_secondary";

    /**
     * @hide for internal use only.
     */
    public static final int ZYGOTE_CONNECT_TIMEOUT_MS = 20000;

    /**
     * @hide for internal use only.
     *
     * Use a relatively short delay, because for app zygote, this is in the critical path of
     * service launch.
     */
    public static final int ZYGOTE_CONNECT_RETRY_DELAY_MS = 50;

    /**
     * @hide for internal use only
     */
@@ -933,7 +946,8 @@ public class ZygoteProcess {
     * @param address The name of the socket to connect to.
     */
    public static void waitForConnectionToZygote(LocalSocketAddress zygoteSocketAddress) {
        for (int n = 20; n >= 0; n--) {
        int numRetries = ZYGOTE_CONNECT_TIMEOUT_MS / ZYGOTE_CONNECT_RETRY_DELAY_MS;
        for (int n = numRetries; n >= 0; n--) {
            try {
                final ZygoteState zs =
                        ZygoteState.connect(zygoteSocketAddress, null);
@@ -945,7 +959,7 @@ public class ZygoteProcess {
            }

            try {
                Thread.sleep(1000);
                Thread.sleep(ZYGOTE_CONNECT_RETRY_DELAY_MS);
            } catch (InterruptedException ie) {
            }
        }