Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Fiberクラス > resume

instance method Fiber#resume

resume(*arg = nil) -> object[permalink][rdoc]

自身が表すファイバーへコンテキストを切り替えます。 自身は resume を呼んだファイバーの子となります。

ただし、Fiber#transfer を呼び出した後に resume を呼び出す事はでき ません。

[PARAM] arg:
self が表すファイバーに渡したいオブジェクトを指定します。
[RETURN]
コンテキストの切り替えの際に Fiber.yield に与えられた引数 を返します。ブロックの終了まで実行した場合はブロックの評価結果 を返します。
[EXCEPTION] FiberError:
自身が既に終了している場合、コンテキストの切替が Thread クラスが表すスレッド間をまたがる場合、自身が resume を 呼んだファイバーの親かその祖先である場合に発生します。 また、Fiber#transfer を呼び出した後に resume を 呼び出した場合に発生します。

例:

f = Fiber.new do
  Fiber.yield(:hoge)
  :fuga
end

p f.resume() #=> :hoge
p f.resume() #=> :fuga
p f.resume() #=> FiberError: dead fiber called