diff options
author | 2019-12-27 20:13:26 -0800 | |
---|---|---|
committer | 2020-01-16 18:46:23 -0800 | |
commit | 5de798e9103c09ae0ae2052822211d36d1fd3b1f (patch) | |
tree | d4fd09bab2e408b160dd3bf227854e9e7cc16238 /cmds/servicemanager/ServiceManager.h | |
parent | 54dea14617edf0cb6ba05e5713878be8c615a376 (diff) |
Dynamically stop services with multiple interfaces
This fixes a couple workflow bugs with dynamic services that had multiple interfaces in use at once. Attempting to stop one could affect the reference count of the other, and re-adding it after a failed removal yielded duplicate registrations.
Bug: 146903840
Test: aidl_lazy_test
Change-Id: I7ec80a280dabf7c576b7b00dff404a68c24ae5f1
Diffstat (limited to 'cmds/servicemanager/ServiceManager.h')
-rw-r--r-- | cmds/servicemanager/ServiceManager.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/cmds/servicemanager/ServiceManager.h b/cmds/servicemanager/ServiceManager.h index 77f52506b9..a2fc5a84c5 100644 --- a/cmds/servicemanager/ServiceManager.h +++ b/cmds/servicemanager/ServiceManager.h @@ -75,7 +75,7 @@ private: void removeRegistrationCallback(const wp<IBinder>& who, ServiceCallbackMap::iterator* it, bool* found); - ssize_t handleServiceClientCallback(const std::string& serviceName); + ssize_t handleServiceClientCallback(const std::string& serviceName, bool isCalledOnInterval); // Also updates mHasClients (of what the last callback was) void sendClientCallbackNotifications(const std::string& serviceName, bool hasClients); // removes a callback from mNameToClientCallback, deleting the entry if the vector is empty |