【一个经典BUG】gin框架中,异步协程使用context导致取不到数据
作者:互联网
bug的内容大致如下:
func httpHandle(c *gin.Context) {
go func(ctx Context){
v := ctx.Value("xxx") // 这里取不到值,导致后续发生panic
}(c)
}
1.发生panic是随机的;
2.问题的原因是:当协程开始使用context的时候,父级协程技术,gin框架回收了context。
context失效导致了问题。
gin框架如何回收context,还没搞明白。后续还要继续看看。
标签:context,协程,Context,func,gin,panic 来源: https://www.cnblogs.com/ahfuzhang/p/16665617.html