Solaris on Sparc 上的atomic_cas_64() 的内部实现?
题
在 Sparc 上的 64 位 Solaris 上,atomic_cas_64() 函数调用是使用加载链接/条件存储实现的吗?
如果没有,Solaris 是否为用户模式 C 代码提供任何 API 来利用 ll/sc 呢?
解决方案
的SPARC64 - 单独之中现代CPU - 工具既不双宽CAS也不LL / SC。因此,实施无锁码是有问题的。有一个解决方案,但它们对不上,因为他们对CAS或LL / SC支持其他平台存在的问题(ABA)的解决方案。另外,一个区间的无锁算法不能在Sparce实现,因为这限制。
不隶属于 StackOverflow