From 6408efd08de57fa88a97f77affa83cabfdb8ffbb Mon Sep 17 00:00:00 2001 From: "zhangyafei.echo" Date: Mon, 29 Apr 2024 20:37:08 +0800 Subject: [PATCH] Get ability record from terminating map when attach ability thread, incase the process started two slow. Sig:SIG_ApplicationFramework Feature or BugFix: Feature Binary Source: No Signed-off-by: zhangyafei.echo Change-Id: Ida15180aa9ac1b128e158567d4b1a38e373de6c1 --- services/abilitymgr/src/ability_connect_manager.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/services/abilitymgr/src/ability_connect_manager.cpp b/services/abilitymgr/src/ability_connect_manager.cpp index b8de965590b..a63b6bf42f0 100644 --- a/services/abilitymgr/src/ability_connect_manager.cpp +++ b/services/abilitymgr/src/ability_connect_manager.cpp @@ -747,6 +747,12 @@ int AbilityConnectManager::AttachAbilityThreadLocked( HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); std::lock_guard guard(Lock_); auto abilityRecord = GetExtensionFromServiceMapInner(token); + if (abilityRecord == nullptr) { + abilityRecord = GetExtensionFromTerminatingMapInner(token); + if (abilityRecord != nullptr && !IsUIExtensionAbility(abilityRecord)) { + abilityRecord = nullptr; + } + } CHECK_POINTER_AND_RETURN(abilityRecord, ERR_INVALID_VALUE); if (taskHandler_ != nullptr) { int recordId = abilityRecord->GetRecordId(); -- Gitee