[#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:2111] Re: Thread, Exception and Timeout

From: sinara@...
Date: 1997-02-12 06:19:33 UTC
List: ruby-list #2111
原です。

> まつもと ゆきひろです.

> 理由は,thread内部の例外を伝えるべき相手を特定できない(親に
> 伝えれば良いというものでもないので)ことです.

そうですよね。ときどき fork とごっちゃになってしまって。^^;


> こんな感じでどうですか? threadを2つも使っちゃいますけど.

とにかく処理の中途で終了可能でなくてはいけないんで、どうしても
thread 2 つか、ループを回さないといけないですね。

こんなのもありかな。

def timeout(sec, msg = "timeout")
  r = nil
  a = Time.now
  x = Thread.start { r = yield }
  while Time.now < a + sec
    return r unless x.status
    Thread.pass
  end
  if x.status
    Thread.kill x
    raise TimeoutError, msg
  end
  r
end


石塚さんのいうように、Thread#raise があってもうれしいですけど。

In This Thread