Ничего не просочится, если «приложение остановлено». Предупреждение в документации относится к тому факту, что сборщик мусора не сможет восстановить канал после того, как он создан (time.Tick()
инициализирует и возвращает канал), и он будет находиться в памяти, даже если вы решите break
из вашего for
цикла.
Исходя из вашего описания в вопросе, это не должно быть проблемой для вас, так как вы хотите, чтобы тикер работал, пока приложение работает. Но если вы решите иначе, вы можете использовать альтернативный способ, например:
go func() {
for {
time.Sleep(time.Duration(5) * time.Minute)
go ExecuteFunctionA()
if someConditionIsMet {
break // nothing leaks in this case
}
}
}()