fix: Address concurrency issue in entities storage
This commit is contained in:
parent
294e33d110
commit
2b24daa6d0
|
|
@ -61,9 +61,19 @@ func GetAll() *variableBase {
|
||||||
|
|
||||||
func GetEntities() entitiesByClass {
|
func GetEntities() entitiesByClass {
|
||||||
rwmutex.RLock()
|
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 {
|
func GetEntityInstances(entityName string) entityInstancesByKey {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue