Avatar
omochimetaru 7/21/2017 2:40 AM
仮に @koher のいう、「代入がatomic」だったとしても 入れ替えの問題は起きるのでは (edited)
2:41 AM
つまり、 data を読んだ時に、0か42以外の中途半端にビットが書き換わった変な数字になったり、CPUがぶっ壊れたりしない、としても
2:42 AM
Int やアドレスの代入が atomic でないなら、結構気を付けてプログラム書かないといけないなぁ
2:42 AM
この発言のレベルだと、
2:42 AM
かりに、「Intへの代入がatomicだったとしても」
2:43 AM
↑の順序入れ替えとかに起因するバグを避けるのは難しいのではってことです
2:43 AM
func a() { lock.sync { atomicFoo(42) } } func b() { lock.sync { atomicFoo(999) } } これ自体はlockはいらない。