Make threadsafe, add cache

This commit is contained in:
Neil Alexander 2018-12-15 10:39:31 +00:00
parent cdd2e7910a
commit 8b63e841ea
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
2 changed files with 40 additions and 11 deletions

View file

@ -829,16 +829,13 @@ func (a *admin) admin_getMeta(keyString, coordString string) (metadataPayload, e
}
response := make(chan *metadataPayload, 1)
sendMetaRequest := func() {
a.core.metadata.callbacks[key] = metadataCallback{
created: time.Now(),
call: func(meta *metadataPayload) {
defer func() { recover() }()
select {
case response <- meta:
default:
}
},
}
a.core.metadata.addCallback(key, func(meta *metadataPayload) {
defer func() { recover() }()
select {
case response <- meta:
default:
}
})
a.core.metadata.sendMetadata(key, coords, false)
}
a.core.router.doAdmin(sendMetaRequest)