summaryrefslogtreecommitdiff
path: root/apex/blobstore
diff options
context:
space:
mode:
authorSudheer Shanka <sudheersai@google.com>2020-03-19 11:56:50 -0700
committerSudheer Shanka <sudheersai@google.com>2020-03-19 13:12:35 -0700
commitfb11dc74c89f512e0f93e167dfeb2664babdba68 (patch)
treef5573f11d2dd385f4a8af488842c9fe6ac46f212 /apex/blobstore
parentdb74198593842290281605191685084ddf58841f (diff)
Ensure waitForIdle() waits until pending messages are handled.
Fixes: 151960323 Test: atest --test-mapping apex/blobstore Change-Id: If5156ac22e0a5644bc6d931bed8521824095aa2b
Diffstat (limited to 'apex/blobstore')
-rw-r--r--apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
index f4b8f0f39e85..334b4b3c43e9 100644
--- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
@@ -1330,8 +1330,15 @@ public class BlobStoreManagerService extends SystemService {
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP,
"Caller is not allowed to call this; caller=" + Binder.getCallingUid());
- mHandler.post(PooledLambda.obtainRunnable(remoteCallback::sendResult, null)
- .recycleOnUse());
+ // We post messages back and forth between mHandler thread and mBackgroundHandler
+ // thread while committing a blob. We need to replicate the same pattern here to
+ // ensure pending messages have been handled.
+ mHandler.post(() -> {
+ mBackgroundHandler.post(() -> {
+ mHandler.post(PooledLambda.obtainRunnable(remoteCallback::sendResult, null)
+ .recycleOnUse());
+ });
+ });
}
@Override