diff --git a/services/engine/src/update_service.cpp b/services/engine/src/update_service.cpp index f91093c3a32b3fae23246bcd5ac69b9bac22b490..43a380fc76e3e8613c0e7557554352b561a47594 100644 --- a/services/engine/src/update_service.cpp +++ b/services/engine/src/update_service.cpp @@ -142,11 +142,11 @@ int32_t UpdateService::RegisterUpdateCallback(const UpgradeInfo &info, const spt ClientProxy clientProxy(info, updateCallback); clientProxy.AddDeathRecipient(); clientProxyMap_.insert({info, clientProxy}); + DelayedSingleton::GetInstance()->SetRemoteIdle(clientProxyMap_.empty()); } if (!info.IsLocal()) { UpdateServiceCache::SetUpgradeInfo(info); } - DelayedSingleton::GetInstance()->SetRemoteIdle(clientProxyMap_.empty()); return INT_CALL_SUCCESS; } @@ -424,6 +424,7 @@ void BuildTaskInfoDump(const int fd) void UpdateService::DumpUpgradeCallback(const int fd) { dprintf(fd, "---------------------callback info--------------------\n"); + std::lock_guard lock(clientProxyMapLock_); for (const auto &iter : clientProxyMap_) { const UpgradeInfo& info = iter.first; dprintf(fd, "%s\n", info.ToString().c_str());