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

IncIf: Unlock через defer

Ранний return забыл разблокировку. Реализуйте IncIf(cond bool): поставьте defer c.mu.Unlock() сразу после Lock, чтобы мьютекс освобождался на любом пути выхода.

GolangРешение
func (c *Counter) IncIf(cond bool) {
	c.mu.Lock()
	defer c.mu.Unlock()
	if !cond {
		return
	}
	c.n++
}

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

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

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