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