Как работает context.WithCancelCause?

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

WithCancelCause (Go 1.20) возвращает cancel функцию, принимающую error — причину отмены. cancel(fmt.Errorf("timeout exceeded")). Потом context.Cause(ctx) возвращает эту ошибку. Обычный WithCancel не даёт узнать почему контекст отменён — только что отменён. WithCancelCause полезен для дебага: ты видишь кто и почему отменил контекст, а не просто «context canceled».

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

Что такое contract testing?