Stats: публичный и внутренний методы
Повторный Lock в той же горутине — дедлок. Реализуйте Stats: внутренний valueLocked без блокировки, публичные Value и Snapshot берут Lock и вызывают внутренний.
Показать решение
GolangРешение
func (s *Stats) valueLocked() int {
return s.processed
}
func (s *Stats) Value() int {
s.mu.Lock()
defer s.mu.Unlock()
return s.valueLocked()
}
func (s *Stats) Snapshot() int {
s.mu.Lock()
defer s.mu.Unlock()
return s.valueLocked()
}Записаться на разбор
10 000 ₽ · 60 минут · онлайн