Гуглил.
Допустим есть некий код который отдаёт указатель
func Db(name string) *DB{
rw.RLock()
_, ok := database[name]
rw.RUnlock()
if !ok {
newDb(name)
Db(name)
}
return database[name]
}
и функция для работы со структурой
func (d *DB) Set(key string, value interface{}) bool {
log.Println("cache.Set: ",key, " Value: ", value)
d.RW.Lock()
defer d.RW.Unlock()
_, ok := d.Storage[key]
if ok {
log.Println("cache.Set: ",key, " exist")
return false
}
d.Storage[key] = value
return true
}
Нужны ли блокировки в последней?