kill -> self | falseRuby 3.3 から[permalink][rdoc][edit]-
selfが表すファイバーを終了させます。捕捉できない例外を発生させて終了させるため、ensure 節は実行されます。
まだ開始されていないファイバーに対して呼んだ場合は、ブロックを実行せずに終了状態にします。すでに終了しているファイバーに対して呼んだ場合は何もしません。
self以外のファイバーを終了させられるのは、そのファイバーが Fiber.yield で停止している場合だけです。selfに対して呼んだ場合は、kill を呼んだ場所で例外が発生します。- [RETURN]
-
selfを返します。すでに kill 済みの場合は false を返します。 - [EXCEPTION]
FiberError: - 他のスレッドに属するファイバーに対して呼んだ場合に発生します。
f = Fiber.new do begin Fiber.yield :a Fiber.yield :b ensure puts "ensure は実行される" end end p f.resume # => :a f.kill # "ensure は実行される" が出力される p f.alive? # => false[SEE_ALSO] Thread#kill