るりまサーチ

最速Rubyリファレンスマニュアル検索!
70件ヒット [1-70件を表示] (0.075秒)

別のキーワード

  1. fiber alive?
  2. fiber transfer
  3. fiber current
  4. fiber raise
  5. _builtin fiber

ライブラリ

クラス

キーワード

検索結果

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

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

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

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

@param arg self が表すファイバーに渡した...
...す。

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

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

//emlist[例:][ruby]{

f = Fiber.new do
Fiber
....

Fiber#transfer(*args) -> object (17103.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
:hoge
end

p fr3.resume...

Fiber#alive? -> bool (17049.0)

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

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

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

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

Fiber#transfer(*args) -> object (9103.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
:hoge
end

p fr3.resume...

Fiber#raise -> object (9059.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 # => :loop
p f....

絞り込み条件を変える

Fiber#raise(exception, message = nil, backtrace = nil) -> object (9059.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 # => :loop
p f....

Fiber#raise(message) -> object (9059.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 # => :loop
p f....

Fiber#alive? -> bool (9049.0)

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

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

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

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

Thread#[](name) -> object | nil (49.0)

name に対応したスレッドに固有のデータを取り出します。 name に対応するスレッド固有データがなければ nil を返し ます。

...<Thread:0x00000002a541a8 dead>: B
# => #<Thread:0x00000002a54130 dead>: C
//}

Thread#[] と Thread#[]= を用いたスレッド固有の変数は
Fiber
を切り替えると異なる変数を返す事に注意してください。

//emlist[][ruby]{
def meth(newvalue)
begin
oldvalue = Thread...
...数に与えるブロックがFiberを切り替える場合は動的スコープとしては
正しく動作しません。

//emlist[][ruby]{
f = Fiber.new {
meth(1) {
Fiber
.yield
}
}
meth(2) {
f.resume
}
f.resume
p Thread.current[:name]
# => nil if fiber-local
# => 2 if thread-local (The...
...value 2 is leaked to outside of meth method.)
//}

Fiber
を切り替えても同じ変数を返したい場合は
Thread#thread_variable_get と Thread#thread_variable_set
を使用してください。

Thread#[]=...
...value 2 is leaked to outside of meth method.)
//}

Fiber
を切り替えても同じ変数を返したい場合は
Thread#thread_variable_get と Thread#thread_variable_set
を使用してください。

@see Thread#fetch, Thread#[]=...

Thread#thread_variable_get(key) -> object | nil (43.0)

引数 key で指定した名前のスレッドローカル変数を返します。

...変数(Fiber ローカル変数)と
異なり、Fiber を切り替えても同じ変数を返す事に注意してください。

例:

Thread.new {
Thread.current.thread_variable_set("foo", "bar") # スレッドローカル
Thread.current["foo"] = "bar" # Fiber ロー...
...カル

Fiber.new {
Fiber
.yield [
Thread.current.thread_variable_get("foo"), # スレッドローカル
Thread.current["foo"], # Fiber ローカル
]
}.resume
}.join.value # => ['bar', nil]

この例の "bar" は Thread#thread_variable_get...

絞り込み条件を変える