RUnlock of unlocked RWMutex
В данном коде:
func (p *Project) DatabaseIsInvalid(name string) bool {
result := false
p.update.RLock()
if checkDb, ok := p.InvalidDatabases[name]; ok && !checkDb {
result = true
}
p.update.RUnlock()
return result
}
Для этой структуры есть ещё одна функция, использующая Lock:
func (p *Project) DatabaseSetState(name string, state bool) {
p.update.Lock()
p.InvalidDatabases[name] = state
p.update.Unlock()
}
И это всё. InvalidDatabases имеет формат map[string]bool, если это имеет значение
Как, блин, такое вообще возможно?
ошибка всегда? или то бывает, то нет?
То бывает, то нет. Там несколько горутин
А больше точно нет обращения к RUnlock? И мютекс не перезаписывается нигде?
Обсуждают сегодня