私は論文「シンプルで高速、かつ実用的なノンブロッキングおよびブロッキング同時キューアルゴリズム」を読んでいて、コンピューターが次の疑似コードをアトミックに実装していると想定していることに気付きました。
CAS(Q->Tail,tail,<next.ptr,next.count+1>)
Q->Tail と tail はポインターであり、ポインターとカウンターを含む構造体のインスタンスです。
私は、gcc が c で単一ワードの比較と交換を行うための組み込み機能をいくつか提供していることを知っています。ただし、(Linux を使用して) c で単一の比較とスワップからノンブロッキングのアトミックな二重比較とスワップを実装することは可能ですか? これは、参照されている論文の疑似コードを実装するための正しいアプローチですか?