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

Commit 86574701 authored by Shai Barack's avatar Shai Barack Committed by Android (Google) Code Review
Browse files

Merge "Revert "Disable concurrent mode when instrumentation is loaded"" into main

parents 0b8a55a6 7cdc4b8f
Loading
Loading
Loading
Loading
+1 −15
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package android.os;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.TestApi;
import android.app.ActivityThread;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Process;
import android.os.UserHandle;
@@ -112,20 +111,7 @@ public final class MessageQueue {
    private native static void nativeSetFileDescriptorEvents(long ptr, int fd, int events);

    MessageQueue(boolean quitAllowed) {
        // Concurrent mode modifies behavior that is observable via reflection and is commonly used
        // by tests.
        // For now, we limit it to system processes to avoid breaking apps and their tests.
        mUseConcurrent = UserHandle.isCore(Process.myUid());
        // Even then, we don't use it if instrumentation is loaded as it breaks some
        // platform tests.
        final ActivityThread activityThread = ActivityThread.currentActivityThread();
        if (activityThread != null) {
            final Instrumentation instrumentation = activityThread.getInstrumentation();
            mUseConcurrent &= instrumentation == null || !instrumentation.isInstrumenting();
        }
        // We can lift this restriction in the future after we've made it possible for test authors
        // to test Looper and MessageQueue without resorting to reflection.

        mUseConcurrent = UserHandle.isCore(Process.myUid()) && !VMDebug.isDebuggingEnabled();
        mQuitAllowed = quitAllowed;
        mPtr = nativeInit();
    }