Что такое context.AfterFunc (Go 1.21)?

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

context.AfterFunc регистрирует функцию, которая вызовется в отдельной горутине когда контекст отменится. Возвращает stop функцию для отмены регистрации. Полезно для cleanup без ручного select + горутины. Например: context.AfterFunc(ctx, func() { conn.Close() }). Это чище чем запускать горутину с select { case <-ctx.Done(): cleanup() }.

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

Как устроены каналы внутри Go runtime?