diff options
author | Peter Kalauskas <peskal@google.com> | 2020-06-24 23:08:46 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-06-24 23:08:46 +0000 |
commit | 9ed41f25fd3be8b51fd31b5d0c1223c754d437c4 (patch) | |
tree | 4a0265ca7aaa935b2587f71a3d03f40e22c0ae17 | |
parent | b487a5ad7ff05161fdd19f51cf7d8bceca3e0801 (diff) | |
parent | 528f369a79138a0066b1d42aec3e80f1f850fb51 (diff) | |
download | hwservicemanager-android11-qpr1-c-release.tar.gz |
Call guaranteeClient on all services in interface chain am: 85c2f4e1d6 am: 528f369a79android-11.0.0_r48android-11.0.0_r47android-11.0.0_r46android-11.0.0_r45android-11.0.0_r44android-11.0.0_r43android-11.0.0_r42android-11.0.0_r41android-11.0.0_r40android-11.0.0_r39android-11.0.0_r38android-11.0.0_r37android-11.0.0_r36android-11.0.0_r35android-11.0.0_r34android-11.0.0_r33android-11.0.0_r32android-11.0.0_r31android-11.0.0_r30android-11.0.0_r29android-11.0.0_r28android-11.0.0_r27android-11.0.0_r26android-11.0.0_r24android-11.0.0_r23android-11.0.0_r22android-11.0.0_r21android-11.0.0_r20android-11.0.0_r19android-11.0.0_r18android11-qpr3-s1-releaseandroid11-qpr3-releaseandroid11-qpr2-releaseandroid11-qpr1-s2-releaseandroid11-qpr1-s1-releaseandroid11-qpr1-releaseandroid11-qpr1-d-s1-releaseandroid11-qpr1-d-releaseandroid11-qpr1-c-releaseandroid11-d2-release
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/hwservicemanager/+/11990970
Change-Id: I66dcf6c543e4026ae764eeb9d649b4acc011f44f
-rw-r--r-- | ServiceManager.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/ServiceManager.cpp b/ServiceManager.cpp index 165a8d9..85d4974 100644 --- a/ServiceManager.cpp +++ b/ServiceManager.cpp @@ -284,6 +284,12 @@ Return<sp<IBase>> ServiceManager::get(const hidl_string& hidlFqName, // Let HidlService know that we handed out a client. If the client drops the service before the // next time handleClientCallbacks is called, it will still know that the service had been handed out. hidlService->guaranteeClient(); + forEachExistingService([&] (HidlService *otherService) { + if (otherService != hidlService && interfacesEqual(service, otherService->getService())) { + otherService->guaranteeClient(); + } + return true; + }); // This is executed immediately after the binder driver confirms the transaction. The driver // will update the appropriate data structures to reflect the fact that the client now has the |