gcc提供的原子内置函数是否实际转换为示例代码,还是仅用于说明目的?

时间:2010-03-12 21:22:38

标签: gcc atomic

所以我正在阅读http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html,并且发现了这个:

type __sync_and_and_fetch (type *ptr, type value, ...)
type __sync_xor_and_fetch (type *ptr, type value, ...)
type __sync_nand_and_fetch (type *ptr, type value, ...)
These builtins perform the operation suggested by the name, and return the new value. That is,
      { *ptr op= value; return *ptr; }
      { *ptr = ~*ptr & value; return *ptr; }   // nand

这段代码是字面意思吗?或者只是用c语法解释gcc在原子上做什么?如果这是直接翻译,有人可以解释它是如何原子的吗?

1 个答案:

答案 0 :(得分:1)

没有。代码就是为了说明函数的运作方式。

原子函数不是用c编写的,而是用每种架构的汇编语言编写的。由于某些体系结构没有实现原子操作的必要指令,因此并非所有操作都在每个体系结构上都有效。