diff options
Diffstat (limited to 'cmds/servicemanager/ServiceManager.cpp')
| -rw-r--r-- | cmds/servicemanager/ServiceManager.cpp | 26 | 
1 files changed, 11 insertions, 15 deletions
| diff --git a/cmds/servicemanager/ServiceManager.cpp b/cmds/servicemanager/ServiceManager.cpp index abe64365f3..ae74ac3847 100644 --- a/cmds/servicemanager/ServiceManager.cpp +++ b/cmds/servicemanager/ServiceManager.cpp @@ -423,12 +423,11 @@ ssize_t ServiceManager::Service::getNodeStrongRefCount() {  void ServiceManager::handleClientCallbacks() {      for (const auto& [name, service] : mNameToService) { -        handleServiceClientCallback(name, true); +        handleServiceClientCallback(name);      }  } -ssize_t ServiceManager::handleServiceClientCallback(const std::string& serviceName, -                                                    bool isCalledOnInterval) { +ssize_t ServiceManager::handleServiceClientCallback(const std::string& serviceName) {      auto serviceIt = mNameToService.find(serviceName);      if (serviceIt == mNameToService.end() || mNameToClientCallback.count(serviceName) < 1) {          return -1; @@ -452,17 +451,14 @@ ssize_t ServiceManager::handleServiceClientCallback(const std::string& serviceNa          service.guaranteeClient = false;      } -    // only send notifications if this was called via the interval checking workflow -    if (isCalledOnInterval) { -        if (hasClients && !service.hasClients) { -            // client was retrieved in some other way -            sendClientCallbackNotifications(serviceName, true); -        } +    if (hasClients && !service.hasClients) { +        // client was retrieved in some other way +        sendClientCallbackNotifications(serviceName, true); +    } -        // there are no more clients, but the callback has not been called yet -        if (!hasClients && service.hasClients) { -            sendClientCallbackNotifications(serviceName, false); -        } +    // there are no more clients, but the callback has not been called yet +    if (!hasClients && service.hasClients) { +        sendClientCallbackNotifications(serviceName, false);      }      return count; @@ -522,7 +518,7 @@ Status ServiceManager::tryUnregisterService(const std::string& name, const sp<IB          return Status::fromExceptionCode(Status::EX_ILLEGAL_STATE);      } -    int clients = handleServiceClientCallback(name, false); +    int clients = handleServiceClientCallback(name);      // clients < 0: feature not implemented or other error. Assume clients.      // Otherwise: @@ -531,7 +527,7 @@ Status ServiceManager::tryUnregisterService(const std::string& name, const sp<IB      // So, if clients > 2, then at least one other service on the system must hold a refcount.      if (clients < 0 || clients > 2) {          // client callbacks are either disabled or there are other clients -        LOG(INFO) << "Tried to unregister " << name << ", but there are clients: " << clients; +        LOG(INFO) << "Tried to unregister " << name << " but there are clients: " << clients;          return Status::fromExceptionCode(Status::EX_ILLEGAL_STATE);      } |