2011-03-16 4 views
5

私はruby1.9.2p180(2011-02-18 revision 30909)i686-linuxを使用しています。未定義のエラーが返されますFiber#alive?ファイバー#生きていますか?定義されていません

fiber = Fiber.new{puts 'hello'} 
fiber.alive? 
=> undefined error 

他の方法を、例えば、Fiber#resumeFiber.yieldは正常に動作しているようです。なにが問題ですか?

ところで、Fiber#resumeFiber#transferの違いは何ですか?

答えて

4

最初require 'fiber'に忘れてしまった:

f = Fiber.new { puts 'hello' } 
    => #<Fiber:0x896109c> 

f.alive? 
    # NoMethodError: undefined method `alive?' for #<Fiber:0x896109c> 
    #  from (irb):2 
    #  from /home/johnf/.rvm/rubies/ruby-1.9.2-rc1/bin/irb:17:in `<main>' 

require 'fiber' 
    => true 

f.alive? 
    => true 
+2

感謝。私はそれを忘れていない、私はそれを知らなかった。それは医師の言うとおりではありませんでした。それはあなたが 'Fiber.current'に対してそれをする必要があると言いますが、' Fiber#alive? 'ではそうは言いません。 – sawa

+0

おそらくドキュメンテーションの監督です。疑わしいときは、コードを読んでください。 :) –

+2

ファイバーを必要とするのは、ファイバーの方法のすべてではなく、一部でのみ必要ですか? –

関連する問題