2013-04-23 compare and swap (CAS) 命令 atomic (C++11) C++11 には atomic に atomic_compare_exchange_weak, atomic_compare_exchange_strong がある. http://en.cppreference.com/w/cpp/atomic/atomic_compare_exchange http://d.hatena.ne.jp/yohhoy/20120725/p1 でも,計算クラスタ等の gcc が古いので残念ながら使えない. atomic (Boost) C++11 の atomic の実装が Boost にあるっぽい. http://d.hatena.ne.jp/faith_and_brave/20111109/1320821667 新しい gcc を野良ビルドするよりは Boost を入れるほうが遥かに楽なので,アリかとも思うが,できればそういうものを入れないで済むと楽だし,配布する予定のものであれば利用者にも嫌われない __sync_bool_compare_and_swap (gcc 拡張) gcc には __sync_bool_compare_and_swap という組み込み関数がある.コレを使えば良い.gcc 4.2 からであるという情報を見かける.計算クラスタの gcc は 4.1.2 であり絶望しかけたが,試してみたら使えた.