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

Commit 13839cfe authored by Chris Wailes's avatar Chris Wailes Committed by android-build-merger
Browse files

Adjust Java Language thread priority in new processes.

am: 80993a6e

Change-Id: I9fc2a68681eb3f39980c45f707581c3a19cdf0d4
parents 1e60d390 80993a6e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -654,6 +654,9 @@ public final class Zygote {
            // End of the postFork event.
            Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);

            // Set the Java Language thread priority to the default value for new apps.
            Thread.currentThread().setPriority(Thread.NORM_PRIORITY);

            return ZygoteInit.zygoteInit(args.mTargetSdkVersion,
                    args.mDisabledCompatChanges,
                    args.mRemainingArgs,
+3 −0
Original line number Diff line number Diff line
@@ -487,6 +487,9 @@ class ZygoteConnection {

        Zygote.setAppProcessName(parsedArgs, TAG);

        // Set the Java Language thread priority to the default value for new apps.
        Thread.currentThread().setPriority(Thread.NORM_PRIORITY);

        // End of the postFork event.
        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
        if (parsedArgs.mInvokeWith != null) {
+15 −3
Original line number Diff line number Diff line
@@ -518,6 +518,9 @@ public class ZygoteInit {
            }
        }

        // Set the Java Language thread priority to the default value for the system server.
        Thread.currentThread().setPriority(Thread.NORM_PRIORITY);

        if (parsedArgs.mInvokeWith != null) {
            String[] args = parsedArgs.mRemainingArgs;
            // If we have a non-null system server class path, we'll have to duplicate the
@@ -825,13 +828,22 @@ public class ZygoteInit {
        return result;
    }

    /**
     * This is the entry point for a Zygote process.  It creates the Zygote server, loads resources,
     * and handles other tasks related to preparing the process for forking into applications.
     *
     * This process is started with a nice value of -20 (highest priority).  All paths that flow
     * into new processes are required to either set the priority to the default value or terminate
     * before executing any non-system code.  The native side of this occurs in SpecializeCommon,
     * while the Java Language priority is changed in ZygoteInit.handleSystemServerProcess,
     * ZygoteConnection.handleChildProc, and Zygote.usapMain.
     *
     * @param argv  Command line arguments used to specify the Zygote's configuration.
     */
    @UnsupportedAppUsage
    public static void main(String argv[]) {
        ZygoteServer zygoteServer = null;

        // Set the initial thread priority to the "normal" value.
        Thread.currentThread().setPriority(Thread.NORM_PRIORITY);

        // Mark zygote start. This ensures that thread creation will throw
        // an error.
        ZygoteHooks.startZygoteNoThreadCreation();