2

出版物の安全性に関するセクションのこの記事に従おうとしています。私の場合は、記事の些細な例と同じですが、「公開された」データは単一の値ではなく、の複数のフィールドstructです。出版社は各フィールドを個別に書き込むので、各書き込みをストアでmemory_order_releaseまとめることで問題ありません。

消費者はまずmemory_order_acquire、データの準備ができていることを確認します。次に、を使用しmemcpyて公開された全体を別の場所にコピーしたいのstructですが(既存のコードの残りの部分によりよく適合するため)、メモリモデルを指定できないため、これは安全ではないようです。これは単なる妄想ですか、それとも深刻な問題になる可能性がありますか?

amd64/x86に固有の提案を受け入れました。

4

1 に答える 1

0

取得セマンティクスとは、後のロードで要求するセマンティクスに関係なく、プログラム順序の後半のロードがバリアの前に再順序付けされないことを意味します。したがって、取得バリアの後にmemcpyを使用して構造を読み取ることは安全であると私は信じています。

于 2012-10-31T01:13:18.347 に答える