[#30220] schedule for Ruby 1.8.6 — "Akinori MUSHA" <knu@...>

 ruby-core を読んでいない人もいると思うので、ここでもアナウンス

20 messages 2007/01/30

[ruby-dev:30150] Re: net/pop error in Ruby 1.9

From: SASADA Koichi <ko1@...>
Date: 2007-01-19 03:53:16 UTC
List: ruby-dev #30150
 ささだです。

Minero Aoki wrote:
> たぶん YARV がマージされたときだと思いますが、lib/timeout.rb が
> 変更されていて、それが net/pop.rb に波及してました。YARV 前だと
> lib/timeout のコードは
> 
>   def timeout(sec, exception=Error)
>     return yield if sec == nil or sec.zero?
>     raise ThreadError, "timeout within critical session" if Thread.critical
>     begin
>       x = Thread.current
>       y = Thread.start {
>         sleep sec
>         x.raise exception, "execution expired" if x.alive?
>       }
>       yield sec
>       #    return true
> 
> となってて yield sec が返るんですが、YARV 後はコメントが解除されて
> いるので true が返ります。
> 
> どっちが正しいんでしょう。
> 
> # 1 行目との整合性を考えると、yield の結果が返ってきたほうが
> # いいと思うけど、ドキュメントは true を返すと言ってるなあ

 なんで変えたのかさっぱり覚えていないのですが、とりあえず YARV ではどち
らも動くと思いますので「良い仕様」にしていただければと思います。

-- 
// SASADA Koichi at atdot dot net


In This Thread