Найди утечку: func process() { ticker := time.NewTicker(time.Second); for range ticker.C { doWork() } }

Middle
120 просмотров
AFK Offer AI

Ticker никогда не останавливается — goroutine и ticker утекают. Даже если process вернётся (что невозможно — бесконечный цикл), ticker.Stop() не вызван. Правильно: defer ticker.Stop(), и выход по ctx.Done() или done channel. Также time.Tick() утекает всегда — нет способа остановить, используй только в main или тестах.

Следующий вопрос

Как помочь компилятору инлайнить?