繁体   English   中英

在Sparc上的Solaris上对atomic_cas_64()的内部实现?

[英]Internal implementation of atomic_cas_64() on Solaris on Sparc?

在Sparc的64位Solaris上,是否使用load-link / condition-store实现了atomic_cas_64()函数调用?

如果没有,那么Solaris为用户模式C代码提供使用ll / sc的任何API怎么办?

Sparc64(仅在现代CPU中)既不实现双倍宽度的CAS,也不实现LL / SC。 这样,实现无锁代码是有问题的。 有解决方案,但是它们是针对问题(ABA)的解决方案,由于支持CAS或LL / SC而在其他平台上不存在。 此外,由于此限制,无法在Sparce上实现一系列无锁算法。

您可以看一下SPARCSPARCv9的实现,以确切地了解它们的作用……您应该看一下membar_ *函数(在同一文件中),看看可以做些什么来获得更强有力的保证。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM