fix: Address concurrency issue in entities storage

This commit is contained in:
jamesread 2025-11-04 23:18:41 +00:00
parent 294e33d110
commit 2b24daa6d0
1 changed files with 12 additions and 2 deletions

View File

@ -61,9 +61,19 @@ func GetAll() *variableBase {
func GetEntities() entitiesByClass {
rwmutex.RLock()
defer rwmutex.RUnlock()
return contents.Entities
copiedEntities := make(entitiesByClass, len(contents.Entities))
for entityName, entityInstances := range contents.Entities {
copiedInstances := make(entityInstancesByKey, len(entityInstances))
for key, entity := range entityInstances {
copiedInstances[key] = entity
}
copiedEntities[entityName] = copiedInstances
}
rwmutex.RUnlock()
return copiedEntities
}
func GetEntityInstances(entityName string) entityInstancesByKey {