如何使用G ++获取_logical_获取/ /发布障碍

时间:2019-04-04 16:33:41

标签: c++ gcc g++

我有一些在跨平台的shared_mutex-implementation中使用__sync_val_compare_and_swap的代码。 Windows版本(#ifdef'd)使用_InterlockedCompareExchange-intrinsic,它具有完整的物理(对CPU进行加载和存储的排序)和逻辑(对编译器而言)获取和释放行为。我找不到任何文档,说明__sync_val_compare_and_swap-intrinsic对加载和存储到编译器的顺序也有一些逻辑影响。那么,是否有任何“内在因素”迫使编译器具有逻辑的获取或释放障碍?我知道gcc中有asm volatile("" ::: "memory");,但是它也具有获取和释放行为。

0 个答案:

没有答案