Есть ли в x86 атомарный инкремент, в котором хранится сохраненное значение? - PullRequest
4 голосов
/ 21 марта 2009

Я нашел lock inc addr, но это не хранит копию сохраненного значения, и даже чтение сразу после того, как оно в том же потоке может прийти после конкурирующей записи.

Лучшее решение, которое я нашел, это петля load / inc / cas.

Ответы [ 2 ]

11 голосов
/ 21 марта 2009

lock xadd твой друг.

3 голосов
/ 18 октября 2009

см. atomic_impl.h для получения дополнительных атомарных примитивов x86 / x86_64 и их использования.

...