这可以原子地完成吗?
void load_and_store(int* dst, int* src) {
int data = *src;
*dst = data;
}
如果必须使用原子存储XCHG [addr], EAX
,我必须EAX
先将数据加载到其中。然后加载和存储不是原子的。
gcc atomic extensionvoid __atomic_store (type *ptr, type *val, int memmodel)
看起来能够以原子方式进行加载和存储。