From: Masatoshi SEKI Date: 2007-09-03T22:27:16+09:00 Subject: [ruby-dev:31726] Re: cannot run test-all 咳といいます。 On 2007/09/03, at 4:04, U.Nakamura wrote: > こんにちは、なかむら(う)です。 > > In message "[ruby-dev:31712] Re: cannot run test-all" > on Sep.02,2007 19:25:11, wrote: > | @resoの分解能で時間をn進めたいので、元のスクリプトが意図したほうでした。 > | ちがうところに問題があるのかしら。 > > 意図のほうはよくわからないのですが、元のスクリプトのままだと > 引数なしでforwardを呼び出すパターンがあって、そうするとforward > 側でnilと0を比較することになるのですが、それはさすがに間違い > なのではないでしょうか? > > ... そういえば大事なことを忘れてましたが、起こるエラーという > のはこんなんでした。 ありがとうございます。ご指摘の通り、おかしいですね。 これではどうでしょうか。 Index: test_rinda.rb =================================================================== --- test_rinda.rb (revision 13340) +++ test_rinda.rb (working copy) @@ -56,20 +56,10 @@ end def sleep(n=nil) - while will_deadlock? - n -= @reso - forward - return 0 if n <= 0 - end now ,= @ts.read([nil, :now]) @ts.read([(now + n)..@inf, :now]) 0 end - - def will_deadlock? - sz = Thread.current.group.list.find_all {|x| x.status != 'sleep'}.size - sz <= 1 - end end module Time