Что такое goroutine leak и как обнаружить?

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

Goroutine leak — горутина заблокирована навсегда (ждёт канал, мьютекс). Обнаружить: runtime.NumGoroutine() растёт, pprof goroutine profile показывает стектрейсы заблокированных. goleak (Uber) в тестах проверяет что после теста нет лишних горутин. Причины: забытый канал без close, отсутствие context cancellation, горутина ждёт WaitGroup который никто не декрементит.

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

Что такое interface constraint с методами?