Переводятся ли атомарные встроенные функции, предоставляемые gcc, в пример кода или это только для иллюстрации? - PullRequest
3 голосов
/ 13 марта 2010

Итак, я читал 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

Является ли этот код буквальным? или это просто, чтобы объяснить, что gcc делает атомарно, используя c-подобный синтаксис? И если это прямой перевод, может кто-нибудь объяснить, как он атомарный?

1 Ответ

1 голос
/ 13 марта 2010

Нет. Код только для того, чтобы проиллюстрировать, как работают функции.

Атомарные функции написаны не на языке c, а на языке ассемблера каждой архитектуры. Поскольку некоторые архитектуры не имеют необходимых инструкций для реализации атомарных операций, не все операции допустимы для каждой архитектуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...