1. 释义
以__atomic
开头的函数一般为系统或者编译器内置的函数,在这里即gcc
的内置函数,主要来实现原子操作。
此函数的意义类似于三目表达式
bool __atomic_compare_exchange_n(type *ptr, type *expected, type desired, bool weak, int success_memorder, int failure_memorder)
比较ptr、expected
指向内容,若相同则将desired
中的值写到ptr
,否则将ptr
中的值写入expected
2.参考
Built-in Funciton for Memory Model Aware Atomic Operation
其他类似的函数
__atomic_load_n(type *ptr, int memorder);
__atomic_store_n(type *ptr, type val, int memorder);
__atomic_exchange_n(type *ptr, type val, int memorder);
.....