Я нашел lock inc addr, но это не хранит копию сохраненного значения, и даже чтение сразу после того, как оно в том же потоке может прийти после конкурирующей записи.
lock inc addr
Лучшее решение, которое я нашел, это петля load / inc / cas.
load
inc
cas
lock xadd твой друг.
lock xadd
см. atomic_impl.h для получения дополнительных атомарных примитивов x86 / x86_64 и их использования.