summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-12-03 06:14:14 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-12-03 06:14:14 +0000
commit27eb188f5a910b49ea604180ea38f720fb5422dd (patch)
tree2b885c05459eee5d3bdcdaa17f8f2d7c5bf14465
parentd566b0f2433f5126fe655e24a31c1b827893c331 (diff)
parente52c9344446546e3e039c029daf8c9ed68a4e763 (diff)
Merge "Don't use concurrent MQ when instrumenting" into main
-rw-r--r--core/java/android/os/CombinedMessageQueue/MessageQueue.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/core/java/android/os/CombinedMessageQueue/MessageQueue.java b/core/java/android/os/CombinedMessageQueue/MessageQueue.java
index 23114c4318c7..804e8faeef16 100644
--- a/core/java/android/os/CombinedMessageQueue/MessageQueue.java
+++ b/core/java/android/os/CombinedMessageQueue/MessageQueue.java
@@ -19,6 +19,8 @@ package android.os;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.TestApi;
+import android.app.ActivityThread;
+import android.app.Instrumentation;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Process;
import android.os.UserHandle;
@@ -119,7 +121,7 @@ public final class MessageQueue {
MessageQueue(boolean quitAllowed) {
initIsProcessAllowedToUseConcurrent();
- mUseConcurrent = sIsProcessAllowedToUseConcurrent;
+ mUseConcurrent = sIsProcessAllowedToUseConcurrent && !isInstrumenting();
mQuitAllowed = quitAllowed;
mPtr = nativeInit();
}
@@ -172,6 +174,15 @@ public final class MessageQueue {
}
}
+ private static boolean isInstrumenting() {
+ final ActivityThread activityThread = ActivityThread.currentActivityThread();
+ if (activityThread == null) {
+ return false;
+ }
+ final Instrumentation instrumentation = activityThread.getInstrumentation();
+ return instrumentation != null && instrumentation.isInstrumenting();
+ }
+
@Override
protected void finalize() throws Throwable {
try {