タグ

2013とmemory barrierに関するUSAGI-WRPのブックマーク (1)

  • C++のフェンス is 何 - yohhoyの日記

    C++メモリモデルにおける フェンス(fence) とatomic変数/非atomic変数の関係についてメモ。 まとめ: C++11標準ライブラリが提供するstd::atomic_thread_fence関数*1は、atomic変数アクセスに対してのみ意味をもつ。通常の非atomic変数には直接的な影響を与えない(間接的には影響を与えうる)。 C++の文脈における「フェンス(fence)」は、言語仕様を記述する仮想機械(abstract machine)上の同期プリミティブにすぎない。フェンス同士またはフェンス+atomic変数操作間で「happens before関係」が定義され、直接的にはそれ以上の効果を持たない*2。 上記より、具体的なアーキテクチャ/コンパイラが提供するメモリバリア(memory barrier)*3とは解釈が異なる(ことが一般的なはず)。例:gcc/x86アーキテ

    C++のフェンス is 何 - yohhoyの日記
  • 1