summaryrefslogtreecommitdiff
path: root/core/java/android/app/ActivityThread.java
diff options
context:
space:
mode:
authorGuanyou Chen <chenguanyou@xiaomi.com>2022-02-24 19:01:12 +0000
committerGuanyou Chen <chenguanyou@xiaomi.com>2022-03-09 08:36:41 +0000
commit036d3ce1a9ceb42586568a553832738bb9b0a62d (patch)
tree88fb49f1a52dd8677816fd9d09a3fd659b631a51 /core/java/android/app/ActivityThread.java
parentb667621f8bcbc16c2f5706fdf018465f7ef3bb0c (diff)
[BugFix] acquireProvider maybe wait for timeout
Test: manual Change-Id: Iaeb951ad8dda333e660a66a138e2cc80f9dbd6a0
Diffstat (limited to 'core/java/android/app/ActivityThread.java')
-rw-r--r--core/java/android/app/ActivityThread.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 6d7835f84dc7..5fa65cc41ac6 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -6989,7 +6989,13 @@ public final class ActivityThread extends ClientTransactionHandler
// local, we'll need to wait for the publishing of the provider.
if (holder != null && holder.provider == null && !holder.mLocal) {
synchronized (key.mLock) {
- key.mLock.wait(ContentResolver.CONTENT_PROVIDER_READY_TIMEOUT_MILLIS);
+ if (key.mHolder != null) {
+ if (DEBUG_PROVIDER) {
+ Slog.i(TAG, "already received provider: " + auth);
+ }
+ } else {
+ key.mLock.wait(ContentResolver.CONTENT_PROVIDER_READY_TIMEOUT_MILLIS);
+ }
holder = key.mHolder;
}
if (holder != null && holder.provider == null) {