• Задача
  • Решение
  • Обсуждение

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()
}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

00:00:00
Наш сайт собирает куки. Чтобы тебе было удобнее им пользоваться. Нажимая на кнопку, ты даёшь разрешение собирать куки