Golang Context 探究
:= newCancelCtx(parent) // 构建父子上下文之间的关联,当父上下文被取消时,子上下文也会被取消 propagateCancel(parent, &c) return &c, func() { c.cancel(true, Canceled) } } 我们重点看 propagateCancel 的实现 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 func propagateCancel(parent Context, child canceler) { done := parent.Done() // 父...阅读全文