有人对runtime.RaceXXX有相关了解么

Hi,

我把sync.Pool的相关代码copy出来,全部逻辑保留,没有修改,然后运行相关单元测试,汇报有DATA RACE,但是一样的单元测试对sync.Pool则没有DATA RACE,那么问题来了,

runtme.RaceXXX在非标准包内不起作用么?在runtime.RaceDisable()runtime.RaceEnable()的区间内仍然报告有DATA RACE

已邀请:

qiangmzsx - 痛而不言,笑而不语,迷而不失,惊而不乱。

赞同来自:

这是做竞态分析使用的,看代码的时候可以选择性忽略

Xargin

赞同来自:

试了一下确实是这样。。

package main

import "runtime"

var a int

func calc() {
    for i := 0; i < 10; i++ {
        go func() {
            for {
                runtime.RaceDisable()
                a++
                runtime.RaceEnable()
            }
        }()

    }
}

func main() {
    calc()
}

go run -race a.go

要回复问题请先登录注册