其他分享
首页 > 其他分享> > 【一个经典BUG】gin框架中,异步协程使用context导致取不到数据

【一个经典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