From: matz@... (Yukihiro Matsumoto) Date: 2000-11-25T23:20:17+09:00 Subject: [ruby-list:26160] Re: fork problem? まつもと ゆきひろです In message "[ruby-list:26156] fork problem?" on 00/11/25, Tanaka Akira writes: |ふと気がついたのですが、fork した子プロセス内で例外が発生すると、外側 |の ensure 節が実行されるようです。 |これは仕様でしょうか? |(Thread だと実行されないので仕様だとしたら非対称だな、とは思う。) 仕様ではないです。例外が発生する場合のことをすっかり忘れてた だけです。Thread同様、例外は飲み込むこととします。 |あと、fork した子プロセス内で、(exec 前に)いくつかのファイルを close |したいのですが、そのファイルを使っているスレッドが他にあると close 時 |にそのスレッドで例外が発生してしまいます。これを防ぐ方法はないでしょう |か? | |close-on-exec すればいいのではないか、とも思ったのですが、socket など |は内部的に dup して 2つ file descriptor を使っているようで、 dup した |ものに close-on-exec を設定することができませんでした... むむ、ちょっとシチュエーションが想像しきれませんでした。なん らかの対応をしたいのですが、現時点ではどのような対応が望まし いのか判断できません。 まつもと ゆきひろ /:|)