Merge pull request #1321 from HifiExperiments/lifetime
Some checks are pending
Master API-docs CI Build and Deploy / Build and deploy API-docs (push) Waiting to run
Master Doxygen CI Build and Deploy / Build and deploy Doxygen documentation (push) Waiting to run

fix domain entity lifetime in serverless mode
This commit is contained in:
ksuprynowicz 2025-04-06 14:46:40 +02:00 committed by GitHub
commit 537462ff37
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 5 additions and 4 deletions

View file

@ -705,10 +705,11 @@ void EntityTree::deleteEntitiesByID(const std::vector<EntityItemID>& ids, bool f
entity = _entityMap.value(id);
}
if (entity) {
if (entity->isDomainEntity()) {
bool isServerless = isServerlessMode();
if (entity->isDomainEntity() && !isServerless) {
// domain-entity deletes must round-trip through entity-server
domainEntitiesIDs.push_back(id);
} else if (force || entity->isLocalEntity() || entity->isMyAvatarEntity()) {
} else if (force || entity->isLocalEntity() || entity->isMyAvatarEntity() || isServerless) {
entitiesToDelete.push_back(entity);
entity->collectChildrenForDelete(entitiesToDelete, sessionID);
}

View file

@ -186,10 +186,10 @@ void PhysicalEntitySimulation::processDeadEntities() {
if (motionState) {
_entitiesToRemoveFromPhysics.insert(entity);
}
if (entity->isDomainEntity()) {
if (entity->isDomainEntity() && !getEntityTree()->isServerlessMode()) {
// interface-client can't delete domainEntities outright, they must roundtrip through the entity-server
_entityPacketSender->queueEraseEntityMessage(entity->getID());
} else if (entity->isLocalEntity() || entity->isMyAvatarEntity()) {
} else {
entitiesToDeleteImmediately.push_back(entity);
entity->collectChildrenForDelete(entitiesToDeleteImmediately, sessionID);
}