33件ヒット
[1-33件を表示]
(0.176秒)
検索結果
先頭3件
-
Fiber
# resume(*arg = nil) -> object (18178.0) -
自身が表すファイバーへコンテキストを切り替えます。 自身は resume を呼んだファイバーの子となります。
...ァイバーへコンテキストを切り替えます。
自身は resume を呼んだファイバーの子となります。
ただし、Fiber#transfer を呼び出した後に resume を呼び出す事はでき
ません。
@param arg self が表すファイバーに渡したいオブジェク......の切替が
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
//}... -
Thread
# [](name) -> object | nil (9151.0) -
name に対応したスレッドに固有のデータを取り出します。 name に対応するスレッド固有データがなければ nil を返し ます。
...@param name スレッド固有データのキーを文字列か Symbol で指定します。
//emlist[例][ruby]{
[
Thread.new { Thread.current["name"] = "A" },
Thread.new { Thread.current[:name] = "B" },
Thread.new { Thread.current["name"] = "C" }
].each do |th|
th.join
puts "#{th.inspe......ct}: #{th[:name]}"
end
# => #<Thread:0x00000002a54220 dead>: A
# => #<Thread:0x00000002a541a8 dead>: B
# => #<Thread:0x00000002a54130 dead>: C
//}
Thread#[] と Thread#[]= を用いたスレッド固有の変数は
Fiber を切り替えると異なる変数を返す事に注意してください......。
//emlist[][ruby]{
def meth(newvalue)
begin
oldvalue = Thread.current[:name]
Thread.current[:name] = newvalue
yield
ensure
Thread.current[:name] = oldvalue
end
end
//}
この関数に与えるブロックがFiberを切り替える場合は動的スコープとしては
正... -
Fiber
# transfer(*args) -> object (55.0) -
自身が表すファイバーへコンテキストを切り替えます。
...す。
自身は Fiber#resume を呼んだファイバーの子となります。
Fiber#resume との違いは、ファイバーが終了したときや Fiber.yield が呼ばれたときは、
ファイバーの親へ戻らずにメインファイバーへ戻ります。
@param args メインフ......ァイバーから呼び出した Fiber#resume メソッドの返り値として渡したいオブジェクトを指定します。
@return コンテキスト切り替えの際に、Fiber#resume メソッドに与えられた引数を返します。
@raise FiberError 自身が既に終了してい......る場合、コンテキストの切り替えが Thread クラスが表すスレッド間をまたがる場合、
Fiber#resume を呼んだファイバーがその親か先祖である場合に発生します。
//emlist[例:][ruby]{
require 'fiber'
fr1 = Fiber.new do |v|
:fugafu...