如何为线程消毒器注释 seq-cst 原子栅栏?

How do I annotate seq-cst atomic fences for the thread sanitizer?

我了解到 ,要修复它,您需要告诉 TSAN 哪些原子变量受栅栏影响,方法是在它旁边放置 __tsan_acquire(void *)__tsan_release(void *)(分别用于获取和释放围栏)。

但是 seq-cst 围栏呢?据我了解,它们比 acq-rel 围栏更严格,所以 acq-rel 注释可能还不够?

我不太熟悉不同的内存顺序,所以我可能遗漏了一些东西。

@dvyukov 在 Github confirmed __tsan_acquire+__tsan_release 检测(与 acq-rel 围栏相同)应该足够了。

我不确定这是否意味着 TSAN 通常不区分 seq-cst 和 acq-rel 操作。