ささだです. (2011/05/11 22:52), KOSAKI Motohiro wrote: > しばらく考えたところ、書き込み側で atomic ops 使えば十分という気がしてきました。 > それなら、readerは速度低下0なのでパフォーマンス問題がおこりようがないし。 > Linuxでしかテストしてませんが、こんなもんでどうでしょうか? atomic operation が十分に仮定できるのなら,これでもいいような気がします. ちなみに,rb_atomic_t は int でいいのかしら,とちょっと思った(いや, この辺の常識を知らないもので.rb_atomic_int_t じゃないんだな,って). 自分が持っている対案は,interrupt_flag はあくまでヒントとして扱い,何 か不都合があっても後でリカバーできる情報にしておく.消しちゃ行けない情報 (シグナルの到達判定とか)は,別に用意して,それを参照しなくてはいけない シチュエーション(GVL の外でシグナル監視とか)は,そっちも参照する,とい うのがいいんでないかと思っていましたが,複雑です.小崎さんの提案は,その 点で interrupt_flag をキッチリかっちり管理する,という意味でわかりやすい と思います -- // SASADA Koichi at atdot dot net