お世話になっております。 A.中村です。

On Sat, 9 Dec 2000 23:39:33 +0900
Masatoshi SEKI <m_seki / mva.biglobe.ne.jp> 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 って、命名的に、なんだか…(^^;;;;;