From: Shugo Maeda Date: 1999-03-08T20:38:16+09:00 Subject: [ruby-dev:6125] Re: Thread#kill 前田です。 Yasuhiro Fukuma writes: > Thread#exit は レシーバに「死ね」と言ったらそのスレッドが死んでくれる > ということだから 自殺 じゃないですか? ここでボクが自殺/他殺と言っているのは、カレントスレッドを終了させる のが自殺で、他のスレッドを終了させるのが他殺という意味合いです。 # Thread::kill(Thread.current)はkill oneselfと同じで自殺になってしま # いますけど。 > Thread::kill は 本人には何も告げずに背後から迫ってきていきなりひと刺し > だから 他殺。 Thread#exitも実質的にはそうですね。 # 内部的には同じものを呼んでいるので。 だからほんとはあまりkillは使うべきではないと思っています。 Abortとかいう例外を適当に定義して、それをスレッドに送って、終了処理 はそのスレッドに任せる、といった方法の方がよいかな、と。 例えばmod_rubyなどで、無限ループになっているスクリプトを止める時なん かはkillするほか仕方ないですけど。 # どれくらいの時間が経ったらkillしようか悩んでいるところです。 -- 前田 修吾