From: Masatoshi SEKI Date: 2010-08-17T01:10:17+09:00 Subject: [ruby-dev:42046] Re: [Bug #3674] dRuby サーバプロセスを停止する時に時間がかかることがある 咳といいます。 On 2010/08/17, at 0:22, Yusuke ENDOH wrote: > > > あと、join で死ぬのを待つなら while list.size > 0 は要らない > かも。 > > > diff --git a/lib/drb/drb.rb b/lib/drb/drb.rb > index cacca14..cfed15c 100644 > --- a/lib/drb/drb.rb > +++ b/lib/drb/drb.rb > @@ -1417,11 +1417,11 @@ module DRb > grp = ThreadGroup.new > grp.add(Thread.current) > list = @grp.list > - while list.size > 0 > - list.each do |th| > - th.kill if th.alive? > + list.each do |th| > + begin > + th.kill.join if th.alive? > + rescue Exception > end > - list = @grp.list > end > end > end まだ死んでないスレッドがサブスレッドを起こすかもしれないので、 listをなんどもとるようにしました。