IORef
複数のスレッド間で共有し、atomicModifyIORef
それに書き込むために使用する場合:
atomicModifyIORef ref (\_ -> (new, ()))
プレーンオールドで値を読み取っても安全readIORef
ですか? または、変更readIORef
後に別のスレッドで古い値を返す可能性はありatomicModifyIORef
ますか?
それがドキュメントが意味することだと思います:
atomicModifyIORef は、並べ替えに対するバリアとして機能します。複数のatomicModifyIORef操作は、厳密なプログラム順序で発生します。atomicModifyIORef は、以前の (プログラムの順序で) IORef 操作の前、または後の IORef 操作の後に発生することはありません。
確認したいだけです。