出版物の安全性に関するセクションのこの記事に従おうとしています。私の場合は、記事の些細な例と同じですが、「公開された」データは単一の値ではなく、の複数のフィールドstruct
です。出版社は各フィールドを個別に書き込むので、各書き込みをストアでmemory_order_release
まとめることで問題ありません。
消費者はまずmemory_order_acquire
、データの準備ができていることを確認します。次に、を使用しmemcpy
て公開された全体を別の場所にコピーしたいのstruct
ですが(既存のコードの残りの部分によりよく適合するため)、メモリモデルを指定できないため、これは安全ではないようです。これは単なる妄想ですか、それとも深刻な問題になる可能性がありますか?
amd64/x86に固有の提案を受け入れました。