平行評価 このインスタンスはすぐに別スレッドでブロックの評価が始まり、そのブロックの戻り値として振舞う。 ただし、ブロックの処理が終わる前にこのオブジェクトを参照した場合、参照元のスレッドは値が返るまで ブロッキングされる
# File core/lib/lazy.rb, line 49 def initialize @proc = Thread.new(&Proc.new) @obj = nil end
# File core/lib/lazy.rb, line 53 def irregular_eval_object if @proc @obj = @proc.value @proc = nil end @obj end