U:RDoc::AnyMethod[iI"
transfer:ETI"Fiber#transfer;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph; [
I"GTransfer control to another fiber, resuming it from where it last ;TI"Fstopped or starting it if it was not resumed before. The calling ;TI"4fiber will be suspended much like in a call to ;TI"HFiber.yield
. You need to require 'fiber'
;TI"before using this method.;To:RDoc::Markup::BlankLine o;
; [I"GThe fiber which receives the transfer call is treats it much like ;TI"Ha resume call. Arguments passed to transfer are treated like those ;TI"passed to resume.;T@o;
; [I"HYou cannot resume a fiber that transferred control to another one. ;TI"IThis will cause a double resume error. You need to transfer control ;TI"7back to this fiber before it can yield and resume.;T@o;
; [I"
Example:;T@o:RDoc::Markup::Verbatim; [I"fiber1 = Fiber.new do
;TI" puts "In Fiber 1"
;TI" Fiber.yield
;TI" end
;TI"
;TI"fiber2 = Fiber.new do
;TI" puts "In Fiber 2"
;TI" fiber1.transfer
;TI"% puts "Never see this message"
;TI" end
;TI"
;TI"fiber3 = Fiber.new do
;TI" puts "In Fiber 3"
;TI" end
;TI"
;TI"fiber2.resume
;TI"fiber3.resume
;T:@format0o;
; [I"produces;T@o;; [I"In fiber 2
;TI"In fiber 1
;TI"In fiber 3;T;
0:
@fileI"cont.c;T:0@omit_headings_from_table_of_contents_below0I"&fiber.transfer(args, ...) -> obj
;T0[ I"(*args);T@;FI"
Fiber;TcRDoc::NormalClass00