[ruby-dev:31726] Re: cannot run test-all

From: Masatoshi SEKI <m_seki@...>
Date: 2007-09-03 13:27:16 UTC
List: ruby-dev #31726
咳といいます。

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, <m_seki@mva.biglobe.ne.jp> 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





In This Thread