別のキーワード
種類
- 特異メソッド (6)
- インスタンスメソッド (6)
検索結果
先頭5件
-
Fiber
. new {|obj| . . . } -> Fiber (18108) -
与えられたブロックとともにファイバーを生成して返します。 ブロックは Fiber#resume に与えられた引数をその引数として実行されます。
...す。
ブロックは Fiber#resume に与えられた引数をその引数として実行されます。
ブロックが終了した場合は親にコンテキストが切り替わります。
その時ブロックの評価値が返されます。
a = nil
f = Fiber.new do |obj|
a = obj
:h... -
Fiber
# transfer(*args) -> object (19) -
自身が表すファイバーへコンテキストを切り替えます。
...表すファイバーへコンテキストを切り替えます。
自身は Fiber#resume を呼んだファイバーの子となります。
Fiber#resume との違いは、ファイバーが終了したときや Fiber.yield が呼ばれたときは、
ファイバーの親へ戻らずにメイン......ァイバーから呼び出した Fiber#resume メソッドの返り値として渡したいオブジェクトを指定します。
@return コンテキスト切り替えの際に、Fiber#resume メソッドに与えられた引数を返します。
@raise FiberError 自身が既に終了してい......がる場合、
Fiber#resume を呼んだファイバーがその親か先祖である場合に発生します。
例:
require 'fiber'
fr1 = Fiber.new do |v|
:fugafuga
end
fr2 = Fiber.new do |v|
fr1.transfer
:fuga
end
fr3 = Fiber.new do |v|
fr... -
Fiber
# alive? -> bool (7) -
ファイバーが「生きている」時、真を返します。
...は以下の場合です。
* まだ Fiber#resume されていない
* ブロック内の評価が終了していない (Fiber.yield が呼ばれていない)
例:
fr = Fiber.new{
Fiber.yield
"a"
}
p fr.alive? # => true
fr.resume # Fiber.yieldで戻ってくる
p fr.alive... -
Fiber
# resume(*arg = nil) -> object (7) -
自身が表すファイバーへコンテキストを切り替えます。 自身は resume を呼んだファイバーの子となります。
...ります。
コンテキストの切り替えの際に Fiber.yield に与えられた引数を resume メソッドは返します。
@param arg self が表すファイバーに渡したいオブジェクトを指定します。
@raise FiberError 自身が既に終了している場合、コン......Thread クラスが表すスレッド間をまたがる場合、自身が resume を
呼んだファイバーの親かその祖先である場合に発生します。
例:
f = Fiber.new do
Fiber.yield(:hoge)
end
a = f.resume()
f.resume()
p b #=> :hoge... -
Fiber
. current -> Fiber (7) -
このメソッドが評価されたコンテキストにおける Fiber のインスタンスを返します。
...ッドが評価されたコンテキストにおける Fiber のインスタンスを返します。
例:
fr = Fiber.new do
Fiber.current
end
fb = fr.resume
p fb.equal?(fr) # => true
p Fiber.current # => #<Fiber:0x91345e4>
p Fiber.current # => #<Fiber:0x91345e4>... -
Fiber
. yield(*arg = nil) -> object (7) -
現在のファイバーの親にコンテキストを切り替えます。
...す。
コンテキストの切り替えの際に Fiber#resume に与えられた引数を yield メソッドは返します。
@param arg 現在のファイバーの親に渡したいオブジェクトを指定します。
@raise FiberError Fiber でのルートファイバーで呼ばれた場......合に発生します。
例:
a = nil
f = Fiber.new do
a = Fiber.yield()
end
f.resume()
f.resume(:foo)
p a #=> :foo...
