Проблема с размером стека, очевидно, связана с размером самой структуры.Так как ваша структура растет органически, вы, как и я, можете пересечь этот размер вызова стека 2 КБ.
Приведенную выше проблему можно исправить, используя указатель на структуру в объявлении функции.
func (l *loc_t) rampUp (wg *sync.WaitGroup) {
defer wg.Done()
l.Counter += 1
}
Это создает указатель на структуру, так что все, что идет в стек, это указатель, а не полная копия структуры.
Очевидно, что это может иметь и другие последствия, включая условия гонки, если вы 'повторный вызов в нескольких потоках одновременно.Но как решение для постоянно растущей структуры, которая внезапно начнет вызывать переполнение стека, это решение.
В любом случае, надеюсь, что это будет полезно для кого-то еще.