This is why sync.WaitGroup exists, but you have to manage the lifecycle explicitly, it’s not built into the language.