From: Tanaka Akira Date: 2008-05-23T08:44:58+09:00 Subject: [ruby-dev:34821] Re: net/imap uses Thread#raise In article <704d5db90805221615u363dea36h4dbc5382768f08b7@mail.gmail.com>, "Shugo Maeda" writes: > disconnectではソケットをcloseしているのでreceiver_threadは終了するはず > です。 > そうなっていないとすると、killを呼ぶようにする前に、他に修正すべきところが > あるんじゃないかと思います。 disconnect を越えて receiver_thread が生き残らないという性質 はあっていいんじゃないかと思います。 今回は receiver_thread が Thread#raise を使っていたので変な ことが起きましたが、これを使わなくても、 * 誰かが Thread.abort_on_exception を設定しており、 * receiver_thread が例外で終了する 場合に、同様のことが起こります。 disconnect は close でエラーが起こると join しませんが、 エラーが起きても join するというのはどうですかねぇ。 あ、kill は避けたほうがいいと私も思います。 -- [田中 哲][たなか あきら][Tanaka Akira]