Fix concurrency crash. Closes #1067
This commit is contained in:
parent
62dfc5bea3
commit
306a0066d1
@ -1,9 +1,17 @@
|
|||||||
package data
|
package data
|
||||||
|
|
||||||
import "errors"
|
import (
|
||||||
|
"errors"
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _cacheLock = sync.Mutex{}
|
||||||
|
|
||||||
// GetCachedValue will return a value for key from the cache.
|
// GetCachedValue will return a value for key from the cache.
|
||||||
func (ds *Datastore) GetCachedValue(key string) ([]byte, error) {
|
func (ds *Datastore) GetCachedValue(key string) ([]byte, error) {
|
||||||
|
_cacheLock.Lock()
|
||||||
|
defer _cacheLock.Unlock()
|
||||||
|
|
||||||
// Check for a cached value
|
// Check for a cached value
|
||||||
if val, ok := ds.cache[key]; ok {
|
if val, ok := ds.cache[key]; ok {
|
||||||
return val, nil
|
return val, nil
|
||||||
@ -14,5 +22,8 @@ func (ds *Datastore) GetCachedValue(key string) ([]byte, error) {
|
|||||||
|
|
||||||
// SetCachedValue will set a value for key in the cache.
|
// SetCachedValue will set a value for key in the cache.
|
||||||
func (ds *Datastore) SetCachedValue(key string, b []byte) {
|
func (ds *Datastore) SetCachedValue(key string, b []byte) {
|
||||||
|
_cacheLock.Lock()
|
||||||
|
defer _cacheLock.Unlock()
|
||||||
|
|
||||||
ds.cache[key] = b
|
ds.cache[key] = b
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user