Frage
Ich benutze Ruby1.9.2p180 (2011-02-18 Revision 30909) i686-linux. Fiber#alive?
Gibt einen undefinierten Fehler zurück:
fiber = Fiber.new{puts 'hello'}
fiber.alive?
=> undefined error
Zum Beispiel andere Methoden, Fiber#resume
, Fiber.yield
scheinen gut zu funktionieren. Was ist falsch?
Übrigens, was ist der Unterschied zwischen Fiber#resume
und Fiber#transfer
?
Lösung
Du hast es vergessen require 'fiber'
Erste:
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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow