diff --git a/window_scene/session_manager/src/scene_session_manager.cpp b/window_scene/session_manager/src/scene_session_manager.cpp index 3b875d7d328486d40a56d590656ce96590db4471..cd831710389101e2d6312e8586676570db99861d 100644 --- a/window_scene/session_manager/src/scene_session_manager.cpp +++ b/window_scene/session_manager/src/scene_session_manager.cpp @@ -6410,7 +6410,7 @@ WSError SceneSessionManager::RegisterIAbilityManagerCollaborator(int32_t type, return WSError::WS_ERROR_INVALID_TYPE; } { - std::shared_lock lock(collaboratorMapLock_); + std::unique_lock lock(collaboratorMapLock_); collaboratorMap_[type] = impl; } return WSError::WS_OK; @@ -6430,7 +6430,7 @@ WSError SceneSessionManager::UnregisterIAbilityManagerCollaborator(int32_t type) return WSError::WS_ERROR_INVALID_TYPE; } { - std::shared_lock lock(collaboratorMapLock_); + std::unique_lock lock(collaboratorMapLock_); collaboratorMap_.erase(type); } return WSError::WS_OK;