diff --git a/window_scene/session_manager/src/scene_session_manager.cpp b/window_scene/session_manager/src/scene_session_manager.cpp index 8e77063ec08d3ec6bcb9cbb704121d775ec30456..f6c3fc8aec101cf63e7a09f22ebbf8e6cea0e6d1 100644 --- a/window_scene/session_manager/src/scene_session_manager.cpp +++ b/window_scene/session_manager/src/scene_session_manager.cpp @@ -6362,7 +6362,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; @@ -6382,7 +6382,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;