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

Commit b06bed08 authored by Nicolas Geoffray's avatar Nicolas Geoffray Committed by android-build-merger
Browse files

Merge "Pass to the runtime the primary zygote option." am: c9bcf869

am: e21b8c9b

Change-Id: I8285b5822b45f3d817ed9b1cf0fa269ec646f5b9
parents 7bd8017a e21b8c9b
Loading
Loading
Loading
Loading
+9 −2
Original line number Original line Diff line number Diff line
@@ -631,7 +631,7 @@ bool AndroidRuntime::parseCompilerRuntimeOption(const char* property,
 *
 *
 * Returns 0 on success.
 * Returns 0 on success.
 */
 */
int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote)
int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote, bool primary_zygote)
{
{
    JavaVMInitArgs initArgs;
    JavaVMInitArgs initArgs;
    char propBuf[PROPERTY_VALUE_MAX];
    char propBuf[PROPERTY_VALUE_MAX];
@@ -762,6 +762,10 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote)
    addOption("-verbose:gc");
    addOption("-verbose:gc");
    //addOption("-verbose:class");
    //addOption("-verbose:class");


    if (primary_zygote) {
        addOption("-Xprimaryzygote");
    }

    /*
    /*
     * The default starting and maximum size of the heap.  Larger
     * The default starting and maximum size of the heap.  Larger
     * values should be specified in a product property override.
     * values should be specified in a product property override.
@@ -1123,6 +1127,8 @@ void AndroidRuntime::start(const char* className, const Vector<String8>& options
            className != NULL ? className : "(unknown)", getuid());
            className != NULL ? className : "(unknown)", getuid());


    static const String8 startSystemServer("start-system-server");
    static const String8 startSystemServer("start-system-server");
    // Whether this is the primary zygote, meaning the zygote which will fork system server.
    bool primary_zygote = false;


    /*
    /*
     * 'startSystemServer == true' means runtime is obsolete and not run from
     * 'startSystemServer == true' means runtime is obsolete and not run from
@@ -1130,6 +1136,7 @@ void AndroidRuntime::start(const char* className, const Vector<String8>& options
     */
     */
    for (size_t i = 0; i < options.size(); ++i) {
    for (size_t i = 0; i < options.size(); ++i) {
        if (options[i] == startSystemServer) {
        if (options[i] == startSystemServer) {
            primary_zygote = true;
           /* track our progress through the boot sequence */
           /* track our progress through the boot sequence */
           const int LOG_BOOT_PROGRESS_START = 3000;
           const int LOG_BOOT_PROGRESS_START = 3000;
           LOG_EVENT_LONG(LOG_BOOT_PROGRESS_START,  ns2ms(systemTime(SYSTEM_TIME_MONOTONIC)));
           LOG_EVENT_LONG(LOG_BOOT_PROGRESS_START,  ns2ms(systemTime(SYSTEM_TIME_MONOTONIC)));
@@ -1165,7 +1172,7 @@ void AndroidRuntime::start(const char* className, const Vector<String8>& options
    JniInvocation jni_invocation;
    JniInvocation jni_invocation;
    jni_invocation.Init(NULL);
    jni_invocation.Init(NULL);
    JNIEnv* env;
    JNIEnv* env;
    if (startVm(&mJavaVM, &env, zygote) != 0) {
    if (startVm(&mJavaVM, &env, zygote, primary_zygote) != 0) {
        return;
        return;
    }
    }
    onVmCreated(env);
    onVmCreated(env);
+1 −1
Original line number Original line Diff line number Diff line
@@ -131,7 +131,7 @@ private:
                                    const char* runtimeArg,
                                    const char* runtimeArg,
                                    const char* quotingArg);
                                    const char* quotingArg);
    void parseExtraOpts(char* extraOptsBuf, const char* quotingArg);
    void parseExtraOpts(char* extraOptsBuf, const char* quotingArg);
    int startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote);
    int startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote, bool primary_zygote);


    Vector<JavaVMOption> mOptions;
    Vector<JavaVMOption> mOptions;
    bool mExitWithoutCleanup;
    bool mExitWithoutCleanup;