tensorflow 是否有错误“DCHECK((ref_.store(0),true));“的引用计数::Unref()函数,

xfb7svmp  于 2022-10-29  发布在  其他
关注(0)|答案(2)|浏览(116)

tensorflow/tensorflow/core/lib/core/refcount.h
3db52be中的第103行
| | (0)返回的值为真;|
DCHECK((ref_.store(0), true));应将ref_'值转换为0。但运行DCHECK((ref_.store(0), true));后,ref_'值仍为1。
然后,有一个测试代码:
'#包含

include“tensorflow /内核/库/内核/引用计数. h”

include“tensorflow /内核/平台/测试. h”

名称空间tensorflow {
命名空间核心{
名称空间{
测试(参考计数测试,非参考测试){
标准::原子_整数_快速32_t参考_(1);
(0)返回的值为真;
//检查(ref_.load()== 0);//此处的检查无法通过。
标准::cout〈〈“参考值:“〈〈ref_.load(标准::存储器顺序获取);
}
}
}
}`
结果:
'从test_main.cc运行main()
[===========]正在运行1个测试套件中的1个测试。
[---------]全球测试环境设置。
[-----------]来自参考计数测试的1个测试
[运行]参考计数测试.取消参考测试
ref_value:1[确定]参考计数测试。取消参考测试(0毫秒)
[----------]来自RefCountTest的1次测试(总计0毫秒)
[----------]全局测试环境拆卸
[===========]已运行1个测试套件中的1个测试。(总计0毫秒)
[通过] 1次测试。

yiytaume

yiytaume2#

DCHECK中的元组仅在调试模式下计算。(#undef NDEBUG)。这是否是此异常的原因?

相关问题