From: Masatoshi SEKI Date: 2010-02-18T07:41:08+09:00 Subject: [ruby-dev:40441] Re: repeat of DRb.start_service and DRb.stop_service may result in EADDRINUSE 咳といいます。 On 2010/02/17, at 22:15, Yusuke ENDOH wrote: > Thread#kill でサービスを停止しているようですが、kill した後 join しない > と確実に死んだかどうかわからないと思います。1.8 ではタイミングがたまたま > 問題になっていないだけな気がします。 > > rubyspec がたまに失敗して鬱陶しいので、もしよければ直したいです。以下の > パッチで直ります。 > > diff --git a/lib/drb/drb.rb b/lib/drb/drb.rb > index a2c11f9..4712306 100644 > --- a/lib/drb/drb.rb > +++ b/lib/drb/drb.rb > @@ -1394,7 +1394,7 @@ module DRb > if Thread.current['DRb'] && Thread.current['DRb']['server'] == self > Thread.current['DRb']['stop_service'] = true > else > - @thread.kill > + @thread.kill.join > end > end Thread#killは終了を待つわけじゃないのかー。 ありがとうございます。 今日明日は作業できそうにないので、遠藤さんcommitをお願いできますか? 完全な終了、というのがどの程度できてるのかあやしいような気がする のですが、それは件のRubySpecでは問題ないでしょう。