From: "NAKAMURA, Hiroshi" Date: 2000-12-02T21:52:49+09:00 Subject: [ruby-dev:11680] fork_and_kill_other_threads なひです。[ruby-list:26165]からもって来ました。 > |fcntl(など)を f2 に発行できるようにするか、 > |fork した当の thread 以外の thread をすべて有無を言わさず殺すような fork > |(Thread.fork_and_kill_other_threads とか?)があるといいんじゃないかなぁ、 > |と思っています。 > > forkとthreadを混ぜるのはかなり問題の元です。 > いっそ、fork_and_kill_other_threadsをforkの標準仕様にしちゃ > いましょうか。 この仕様だと、現行のRWikiが動かなくなります。 例えば現状のCVS版は既にこのように実装されていますので、 RWikiはうまく動きません。 dRuby用のthreadが死んでしまうためです。仕様どおりですね。 で、どう対応しようか考えているんですが、 1. RWikiが、forkしてからdRubyを初期化するようにする。 2. Rubyが、kill_other_threadsしなくなる可能性に期待して少し待つ。 3. dRubyが、「forkしたら初期化しなさい」というルールにする(するのは咳さん どれがいいですかねー? / / / より致命的な影響が出ているのがyet another debugger http://www.jin.gr.jp/~nahi/RWiki/?cmd=view&name=debugger で、こいつはこっそりとdebuggeeに取り付いてスレッドを生成してるので、 「全てのdebuggeeはforkしたらdRubyを初期化しなさい」なんてルール(上記3番)を 強要するわけにいきません。当然上記1番も駄目。 なんか抜け穴があるといいなー。。。