From: SASADA Koichi Date: 2007-01-19T12:53:16+09:00 Subject: [ruby-dev:30150] Re: net/pop error in Ruby 1.9  ささだです。 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