From: Nakamura Akifumi Date: 2000-12-11T13:23:51+09:00 Subject: [ruby-list:26490] Re: fork problem? お世話になっております。 A.中村です。 On Sat, 9 Dec 2000 23:39:33 +0900 Masatoshi SEKI wrote: >fork時に各スレッドに ForkException >スレッドごとというよりもそのスレッドのある局面ごとに あ。それのほうが良いか。 threadは「流れに浮かぶうたかた」だったっけ。 >forkしたら file 閉じてね 資源のほうが問題、ってのは有りますね。 もしかしていっそ、 「fork()されたときにヤバくなりそうなオブジェクトのクラス」 みたいなものが有るべきだったり? いやrubyならmoduleか、あるいはmoduleすら無くして暗黙化(笑)するか。 象徴性(^^;を強調するためにmoduleで書くなら以下の感じ。 module MortalOnFork def initialize $MortalList << self # ん?いつ参照を捨てればいいんだ? super end def on_fork #includeしたclassではコレが呼ばれるのを期待する end end class IO include MortalOnFork ...... class MortalOnForkThread << Thread include MortalOnFork ...... >forkされてexecされちゃうなら あれ? fork_and_exec なんてなメソッドは無いんでしたっけ? いきなりosプリミティブに近いモノを呼ぶもんだから 「それが呼ばれたことに伴うであろう意図」を 計りにくくなっているんじゃないですか? ってーか、問題の根本は、ここだったりしない? よだん: Thread#fork って、命名的に、なんだか…(^^;;;;;