Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Sparc上の64ビットSolarisでは、atomic_cas_64()関数呼び出しはload-link / condition-storeを使用して実装されていますか?
そうでない場合、Solarisがll/scを利用するためのユーザーモードCコード用のAPIを提供しているとしたらどうでしょうか。
Sparc64 は、最近の CPU の中で唯一、倍幅の CAS も LL/SC も実装していません。そのため、ロックフリー コードの実装には問題があります。解決策はありますが、それらは CAS または LL/SC をサポートしているため、他のプラットフォームには存在しない問題 (ABA) の解決策です。さらに、この制限により、さまざまなロックフリー アルゴリズムを Sparce に実装することはできません。
SPARCとSPARCv9の実装を見て、それらが何をするかを正確に確認できます... membar_* 関数 (同じファイル内) を見て、より強力な保証を得るために何ができるかを確認する必要があります。