[#2023] Class Method の index — (Dezawa Shin-ichiro) <dezawa@...>

出沢です

13 messages 1997/02/02

[#2158] [Req] pack/unpack — keiju@... (Keiju ISHITSUKA)

けいじゅ@SHLジャパンです.

14 messages 1997/02/18
[#2166] Re: [Req] pack/unpack — matz@... (Yukihiro Matsumoto) 1997/02/18

まつもと ゆきひろです.

[#2277] ruby 1.0-970228 available — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです.

16 messages 1997/02/28

[ruby-list:2261] Re: [BUG]Thread#fail (Re: bug? fail )

From: sinara@...
Date: 1997-02-25 12:48:33 UTC
List: ruby-list #2261
原です。

レポートの続きです。次のコードを動かすと、

-----^ test.rb
#!/usr/local/bin/ruby
class TimeoutError < Exception
end
def timeout(sec, msg = "timeout!!!")
  begin
    x = Thread.current
    y = Thread.start {
      sleep sec
      x.raise TimeoutError, msg if x.status
    }
    yield
  ensure
    Thread.kill y if y.status
  end
end

def re_try(times, error)
  i = 1
  begin
    yield(i)
  rescue error
    if i < times
      i += 1
      retry
    end
  end
end

for k in 1..10
  Thread.start {
    re_try(30, TimeoutError) { |i|
      print i, "\n"
      timeout(2) { sleep 3 }
    }
  }
end
sleep 61
-----$ test.rb

数秒(不定)の後に

./test.rb:13:in `timeout': undefined method `status' for nil
        from ./test.rb:33
        from ./test.rb:34:in `re_try'
        from ./test.rb:31
        from ./test.rb:35:in `start'
        from ./test.rb:30
        from ./test.rb:36:in `each'
        from ./test.rb:36

というのが出ます。再現性あり。

あと、これはちょっと怪しいんですが一度、起動後数秒して
TimeoutError が起こりました。こっちは再現しません。ただ
し、他のスクリプトでは度々起こっている様に見えます。悩
ませているのはこっちの方なんですが、もう少し調査します。

In This Thread