mirror of
https://github.com/niusmallnan/steve.git
synced 2025-09-17 07:19:47 +00:00
Fix concurrent map access panic
This commit is contained in:
@@ -94,24 +94,24 @@ func (s *Store) sendSchemas(result chan types.APIEvent, apiOp *types.APIRequest,
|
|||||||
return oldSchemas
|
return oldSchemas
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inNewSchemas := map[string]bool{}
|
||||||
for _, apiObject := range schemastore.FilterSchemas(apiOp, schemas.Schemas).Objects {
|
for _, apiObject := range schemastore.FilterSchemas(apiOp, schemas.Schemas).Objects {
|
||||||
result <- types.APIEvent{
|
result <- types.APIEvent{
|
||||||
Name: types.ChangeAPIEvent,
|
Name: types.ChangeAPIEvent,
|
||||||
ResourceType: "schema",
|
ResourceType: "schema",
|
||||||
Object: apiObject,
|
Object: apiObject,
|
||||||
}
|
}
|
||||||
delete(oldSchemas.Schemas, apiObject.ID)
|
inNewSchemas[apiObject.ID] = true
|
||||||
}
|
}
|
||||||
|
|
||||||
for id, oldSchema := range oldSchemas.Schemas {
|
for _, oldSchema := range schemastore.FilterSchemas(apiOp, oldSchemas.Schemas).Objects {
|
||||||
|
if inNewSchemas[oldSchema.ID] {
|
||||||
|
continue
|
||||||
|
}
|
||||||
result <- types.APIEvent{
|
result <- types.APIEvent{
|
||||||
Name: types.ChangeAPIEvent,
|
Name: types.RemoveAPIEvent,
|
||||||
ResourceType: "schema",
|
ResourceType: "schema",
|
||||||
Object: types.APIObject{
|
Object: oldSchema,
|
||||||
Type: "schema",
|
|
||||||
ID: id,
|
|
||||||
Object: oldSchema,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user