使用 x86 CMPXCHG 比较和交换的 D 函数
我正在寻找一个向 D 接口提供高级 D 接口的函数Intel x86 上的 ="http://en.wikipedia.org/wiki/Compare-and-swap" rel="nofollow noreferrer">原子 CAS。
我知道我可以使用内联 ASM 来做到这一点(如果需要的话我会这样做),但如果可以的话,我宁愿从其他人那里获取代码。
I'm looking for a function that presents a high level D interface to an atomic CAS on Intel x86.
I know I can do it with inline ASM (and if needed I will), but I'd rather just grab code from someone else if I can.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
来自文档: http://www.digitalmars.com/d/2.0/overview .html
所以理论上你可以直接使用 CMPXCHG。
编辑
您可能需要查看:http://www.dsource.org/projects/tango/browser/trunk/tango/core/Atomic.d?rev=4277
由于某种原因,加载确实需要一段时间,但它在内部使用 CMPXCHG 指令,因此根据您的目的重新调整它应该很简单。
From the documentation at: http://www.digitalmars.com/d/2.0/overview.html
So you could in theory use the CMPXCHG directly.
Edit
You may want look at: http://www.dsource.org/projects/tango/browser/trunk/tango/core/Atomic.d?rev=4277
It does take a while to load for some reason, but it is using the CMPXCHG instruction internally, it should be trivial to retool it for your purposes.