Index / Reload
> @koieさん確かに例題のプログラムだとmemory orderingは関係ないですね。実際に問題を起こしたコードはアセンブラレベルで確認して確かにmemory orderingが原因だった記憶があるのですが、簡略化したサンプルを作るうちに変わってしまったのだと思います。ただどういう問題だったかすでに記憶があやふやで思い出せません。
volatile指定が必要なだけ?
SEGVは同期シグナルなのでメモリオーダーの問題ではないような気がします。もしそうなら*p = a;pause();b = *p;assert (a == b);さえもあやしいということになってしまいませんか?
> @koieさん
確かに例題のプログラムだとmemory orderingは関係ないですね。
実際に問題を起こしたコードはアセンブラレベルで確認して確かにmemory orderingが原因だった記憶があるのですが、簡略化したサンプルを作るうちに変わってしまったのだと思います。
ただどういう問題だったかすでに記憶があやふやで思い出せません。
volatile指定が必要なだけ?
SEGVは同期シグナルなのでメモリオーダーの問題ではないような気がします。もしそうなら
*p = a;
pause();
b = *p;
assert (a == b);
さえもあやしいということになってしまいませんか?