diff options
| author | 2024-12-03 06:14:14 +0000 | |
|---|---|---|
| committer | 2024-12-03 06:14:14 +0000 | |
| commit | 27eb188f5a910b49ea604180ea38f720fb5422dd (patch) | |
| tree | 2b885c05459eee5d3bdcdaa17f8f2d7c5bf14465 | |
| parent | d566b0f2433f5126fe655e24a31c1b827893c331 (diff) | |
| parent | e52c9344446546e3e039c029daf8c9ed68a4e763 (diff) | |
Merge "Don't use concurrent MQ when instrumenting" into main
| -rw-r--r-- | core/java/android/os/CombinedMessageQueue/MessageQueue.java | 13 |
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 { |