Golang Context 探究
deadline is already sooner than the new one. return WithCancel(parent) } // 创建 timerCtx c := &timerCtx{ cancelCtx: newCancelCtx(parent), deadline: d, } // 与父节点关联 propagateCancel(parent, c) // 计算当前距离 deadline 的时间 dur := time.Until(d) // 直接取消 if dur <= 0 { c.cancel(true, DeadlineExceeded) // deadline has already passed return c, func() { c.cancel(false...阅读全文