gpt4 book ai didi

linux - 如何实现 ABA 解决方案?

转载 作者:太空宇宙 更新时间:2023-11-04 04:23:54 24 4
gpt4 key购买 nike

我正在尝试从 here 实现 Michael-Scott FIFO 队列。我无法实现他们针对 ABA 问题的解决方案。我收到此错误。

error: incompatible type for argument 1 of '__sync_val_compare_and_swap'

作为引用,我使用 Linux 盒子在英特尔架构上编译它。如果您需要有关我的设置的更多信息,请询问。

似乎 sync_val_CAS 最多只能处理 32 位值。因此,当我删除用于消除 ABA 问题的计数器时,一切都会编译并运行良好。

有人知道我应该在这里使用的相关 64 位 CAS 指令吗?

作为一个附加问题,是否有更好(更快)的无锁 fifo 队列实现?我遇到了this由 Nir ​​Shavit 等人撰写,这似乎很有趣。我想知道其他人是否也看到过类似的努力?谢谢。

最佳答案

假设使用 gcc,尝试使用“march”开关。像这样的东西:-march=i686

还有 __sync_bool_compare_and_swap。不知道是不是更快。

关于linux - 如何实现 ABA 解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10901680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com