るりまサーチ

最速Rubyリファレンスマニュアル検索!
59件ヒット [1-59件を表示] (0.027秒)
トップページ > クラス:Fiber[x] > クエリ:Fiber.yield[x] > クエリ:transfer[x]

別のキーワード

  1. argf.class lines
  2. argf.class each
  3. argf.class each_line
  4. argf.class readlines
  5. argf.class to_a

ライブラリ

キーワード

検索結果

Fiber#transfer(*args) -> object (39180.0)

自身が表すファイバーへコンテキストを切り替えます。

...すファイバーへコンテキストを切り替えます。

自身は Fiber#resume を呼んだファイバーの子となります。
Fiber
#resume との違いは、ファイバーが終了したときや Fiber.yield が呼ばれたときは、
ファイバーの親へ戻らずにメインフ...
...ァイバーから呼び出した Fiber#resume メソッドの返り値として渡したいオブジェクトを指定します。

@return コンテキスト切り替えの際に、Fiber#resume メソッドに与えられた引数を返します。

@raise FiberError 自身が既に終了してい...
...をまたがる場合、
Fiber
#resume を呼んだファイバーがその親か先祖である場合に発生します。

//emlist[例:][ruby]{
require 'fiber'

fr1 = Fiber.new do |v|
:fugafuga
end

fr2 = Fiber.new do |v|
fr1.transfer
:fuga
end

fr3 = Fiber.new do |v|
fr2.resume...

Fiber.yield(*arg = nil) -> object (39138.0)

現在のファイバーの親にコンテキストを切り替えます。

...す。

コンテキストの切り替えの際に Fiber#resume に与えられた引数を yield メソッドは返します。

@param arg 現在のファイバーの親に渡したいオブジェクトを指定します。

@raise FiberError Fiber でのルートファイバーで呼ばれた場...
...合に発生します。


//emlist[例:][ruby]{
a = nil
f = Fiber.new do
a = Fiber.yield()
end

f.resume()
f.resume(:foo)

p a #=> :foo
//}...

Fiber#raise -> object (21081.0)

selfが表すファイバーが最後に Fiber.yield を呼んだ場所で例外を発生させます。

...selfが表すファイバーが最後に Fiber.yield を呼んだ場所で例外を発生させます。

Fiber.yield
が呼ばれていないかファイバーがすでに終了している場合、
Fiber
Error が発生します。

引数を渡さない場合、RuntimeError が発生します。...
...指定します。

//emlist[例][ruby]{
f = Fiber.new { Fiber.yield }
f.resume
f.raise "Error!" # => Error! (RuntimeError)
//}

//emlist[ファイバー内のイテレーションを終了させる例][ruby]{
f = Fiber.new do
loop do
Fiber.yield
(:loop)
end
:exit
end

p f.resume...

Fiber#raise(exception, message = nil, backtrace = nil) -> object (21081.0)

selfが表すファイバーが最後に Fiber.yield を呼んだ場所で例外を発生させます。

...selfが表すファイバーが最後に Fiber.yield を呼んだ場所で例外を発生させます。

Fiber.yield
が呼ばれていないかファイバーがすでに終了している場合、
Fiber
Error が発生します。

引数を渡さない場合、RuntimeError が発生します。...
...指定します。

//emlist[例][ruby]{
f = Fiber.new { Fiber.yield }
f.resume
f.raise "Error!" # => Error! (RuntimeError)
//}

//emlist[ファイバー内のイテレーションを終了させる例][ruby]{
f = Fiber.new do
loop do
Fiber.yield
(:loop)
end
:exit
end

p f.resume...

Fiber#raise(message) -> object (21081.0)

selfが表すファイバーが最後に Fiber.yield を呼んだ場所で例外を発生させます。

...selfが表すファイバーが最後に Fiber.yield を呼んだ場所で例外を発生させます。

Fiber.yield
が呼ばれていないかファイバーがすでに終了している場合、
Fiber
Error が発生します。

引数を渡さない場合、RuntimeError が発生します。...
...指定します。

//emlist[例][ruby]{
f = Fiber.new { Fiber.yield }
f.resume
f.raise "Error!" # => Error! (RuntimeError)
//}

//emlist[ファイバー内のイテレーションを終了させる例][ruby]{
f = Fiber.new do
loop do
Fiber.yield
(:loop)
end
:exit
end

p f.resume...

絞り込み条件を変える

Fiber#resume(*arg = nil) -> object (21073.0)

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

...ります。

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

@param arg self が表すファイバーに渡したいオブジェクトを指定します。

@return コンテキストの切り替えの際に Fiber.yield に与えられた引数...
...を返します。ブロックの終了まで実行した場合はブロックの評価結果
を返します。

@raise FiberError 自身が既に終了している場合、コンテキストの切替が
Thread クラスが表すスレッド間をまたがる場合...
...また、Fiber#transfer を呼び出した後に resume を
呼び出した場合に発生します。

//emlist[例:][ruby]{

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

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

Fiber#alive? -> bool (21049.0)

ファイバーが「生きている」時、真を返します。

...以下の場合です。

* まだ Fiber#resume されていない
* ブロック内の評価が終了していない (Fiber.yield が呼ばれていない)

//emlist[例:][ruby]{
fr = Fiber.new{
Fiber.yield

"a"
}

p fr.alive? # => true
fr.resume # Fiber.yieldで戻ってくる
p fr.alive? # =>...