func (*WaitGroup) Add
func (wg *WaitGroup) Add(delta int)
Add добавляет delta, которая может быть отрицательной, в счетчик WaitGroup. Если счетчик становится нулевым, все горутины, заблокированные в Wait, разблокируются. Если счетчик станет отрицательным, Add вызовет панику.
Обратите внимание, что вызовы с положительным значением delta, которые происходят, когда счетчик равен нулю, должны произойти до Wait. Вызовы с отрицательным значением delta или вызовы с положительным значением delta, которая начинается, когда счетчик больше нуля, может произойти в любое время. Обычно это означает, что вызовы Add должны выполняться перед инструкцией, создающей горутину или другое событие, которое следует ожидать. Если WaitGroup используется для ожидания нескольких независимых наборов событий, новые вызовы Add должны произойти после возвращения всех предыдущих вызовов Wait. См. пример WaitGroup.