るりまサーチ

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

別のキーワード

  1. _builtin resume
  2. ftp resume
  3. ftp resume=
  4. fiber resume
  5. net/ftp resume

クラス

キーワード

検索結果

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

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

...ます。
自身は resume を呼んだファイバーの子となります。

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

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

@
return コンテキス...
...ブロックの評価結果
を返します。

@
raise FiberError 自身が既に終了している場合、コンテキストの切替が
Thread クラスが表すスレッド間をまたがる場合、自身が resume
呼んだファイバーの親...
...また、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#transfer(*args) -> object (63.0)

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

...す。

自身は Fiber#resume を呼んだファイバーの子となります。
Fiber#resume との違いは、ファイバーが終了したときや Fiber.yield が呼ばれたときは、
ファイバーの親へ戻らずにメインファイバーへ戻ります。

@
param args メインフ...
...ァイバーから呼び出した 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 # => :fugafu...

Fiber#raise -> object (33.0)

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

...す。

@
param message 例外のメッセージとなる文字列です。
@
param exception 発生させる例外です。
@
param backtrace 例外発生時のスタックトレースです。文字列の配列で指定します。

//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.raise StopIteration # => :exit
//}...

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

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

...す。

@
param message 例外のメッセージとなる文字列です。
@
param exception 発生させる例外です。
@
param backtrace 例外発生時のスタックトレースです。文字列の配列で指定します。

//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.raise StopIteration # => :exit
//}...

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

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

...す。

@
param message 例外のメッセージとなる文字列です。
@
param exception 発生させる例外です。
@
param backtrace 例外発生時のスタックトレースです。文字列の配列で指定します。

//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.raise StopIteration # => :exit
//}...

絞り込み条件を変える

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

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

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

@
param name スレッド固有データのキーを文字列か Symbol で指定します。

//emlist[例][ruby]{
[
Thread.new { Thread.current["nam...
...的スコープとしては
正しく動作しません。

//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 を切...
...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#thread_variable_get(key) -> object | nil (21.0)

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

...# Fiber ローカル
]
}.resume
}.join.value # => ['bar', nil]

この例の "bar" は Thread#thread_variable_get により得られ
た値で、nil はThread#[] により得られた値です。

@
see Thread#thread_variable_set, Thread#[]

@
see https://magazine.rubyist.net/articl...