咳といいます。

> > |Thread#kill_on_fork?
> > |あるいは
> > |Thread#on_fork
> > |って仕掛けを作ったら、
> > |解決(unix世界前提での)にはならないんでしょうか?
> > 
> > これは最近私が提案していること[ruby-dev:11718]と類似してます
> > ですね。

fork時に各スレッドに ForkException とか raise させたらどう ??

咳の勘では、スレッドごとというよりもそのスレッドのある局面ごとに
fork時に期待する動作が異なる気がするので…。


> なひはこの案に同意します。その仕掛けがなくてもいいと
> 思ってたけど([ruby-dev:11722])、「あったほうがいい」という意見が
> あるのであれば採用にやぶさかではありませんつーか短期的になひは助かります。

咳としては、反論とかないです。

ただちょっと混乱してます。Threadが問題だったんでしたっけ ? ファイルとかの
UNIXな資源が問題だったんでしたっけ ? forkしたら file 閉じてね、とか欲し
かったりしませんか ?

fork時にスレッドが殺されたら、スレッドのGCのタイミングでそのスレッド
だけが参照しているファイルがcloseされるのを期待してって話もありません
でした ? closeしたいんじゃなくて、ファイルにアクセスしないで欲しいって
話しでしたっけ ??

なんか Mutex つかんだまま死んじゃうとか、ありそうな気もする。そうすると
資源をつかんでいる間だけは fork で死なないとかあるのかな。


> 田中さん[ruby-dev:11684]からの流れで、まつもとさんも同意、なひも同意。
> 咳さんはどうですか?dRuby的には、

反論するにも同意するにも咳は理解が足りないみたいです。

dRuby的には、うーん、どうなんだろう。forkされてexecされちゃうなら
なにもしないなぁ。スレッドなくなるもんね。fd の話だとするとどうなんだろう。
fork先でもdRuby使うのかなぁ。うーん。勉強不足でよくわかりません。

咳としては、咳はライブラリ・マニア(?)なのでそういった仕掛けが入ったら
一生懸命対応しちゃうんだろうなぁと思います。

で、そのときライブラリでforkのときにどう振舞うべきかどうやって決めれば
よいのだろう、という不安があります。forkした、ってだけで振舞いが決められ
るのかなぁ。forkして何するってわからないと決められない気もする。

こういう不安が出てくるのは、事例が少ないからでしょうか。

で、採用された後の対応としては、

> 1. 知らんぷり。[ruby-dev:11726][ruby-dev:11727]の通り、
>   それでも問題ないと思います。

基本的にこれ。

> 2. dRubyが生成したスレッドで、明示的に「forkされても生き残るよ」と
>   宣言するようにする。

という宣言をするきっかけをアプリにあげようと思います。

> どちらかでしょうか。

> # ・「forkされても生き残るよ」と宣言するライブラリは、あってもdRubyと
> #   debuggerだけだろうなぁ。
> # ・dRubyとdebuggerがそういう気を使って、どれだけの人が助かるんだろう。
> #   もしや皆無。。。


お役に立てなくてすみません。ここ数日ずっとかんがえていたのですが、
こう、すっきりした切口が見つからないんです。ごめんなさい。