new(blocking: false, storage: true) {|obj| ... } -> FiberRuby 1.9.3 から[permalink][rdoc][edit]-
与えられたブロックとともにファイバーを生成して返します。ブロックは Fiber#resume に与えられた引数をその引数として実行されます。
ブロックが終了した場合は親にコンテキストが切り替わります。その時ブロックの評価値が返されます。
- [PARAM]
blocking: - 偽を指定するとノンブロッキングなファイバーを生成します。真を指定するとブロッキングなファイバーを生成します。詳しくは Fiber/ノンブロッキングファイバーとスケジューラ を参照してください。
- [PARAM]
storage: - 生成するファイバーの fiber storage を指定します。 true を指定すると呼び出し元のファイバーの fiber storage を複製して引き継ぎます。複製なので、生成後の変更は互いに影響しません。 nil を指定すると引き継ぎません。この場合、最初に書き込んだ時点で空の状態から作られます。 Hash を指定するとその内容で初期化します。キーは Symbol で指定します。 fiber storage については Fiber#storage を参照してください。
例: fiber storage の引き継ぎa = nil f = Fiber.new do |obj| a = obj :hoge end b = f.resume(:foo) p a #=> :foo p b #=> :hogeFiber[:key] = 1 p Fiber.new { Fiber[:key] }.resume # => 1 p Fiber.new(storage: nil) { Fiber[:key] }.resume # => nil p Fiber.new(storage: {key: 2}) { Fiber[:key] }.resume # => 2 - [PARAM]