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

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

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

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

Что такое runtime.LockOSThread?