58件ヒット
[1-58件を表示]
(0.018秒)
種類
- 特異メソッド (24)
- インスタンスメソッド (22)
- モジュール関数 (12)
クラス
- IO (12)
- Mutex (2)
- Thread (12)
-
Thread
:: ConditionVariable (10) -
Thread
:: Mutex (10)
モジュール
- Kernel (12)
キーワード
-
handle
_ interrupt (12) - select (24)
- sleep (12)
- wait (10)
検索結果
先頭5件
-
IO
. select(reads , writes = [] , excepts = [] , timeout = nil) -> [[IO]] | nil (109.0) -
select(2) を実行します。
...る IO オブジェクトの配列を渡します。
@param excepts 例外待ちする IO オブジェクトの配列を渡します。
@param timeout タイムアウトまでの時間を表す数値または nil を指定します。数値で指定したときの単位は秒です。nil を指定... -
Kernel
. # select(reads , writes = [] , excepts = [] , timeout = nil) -> [[IO]] | nil (109.0) -
IO.select と同じです。
...IO.select と同じです。
@param reads IO.select 参照
@param writes IO.select 参照
@param excepts IO.select 参照
@param timeout IO.select 参照
@see IO.select... -
Mutex
# sleep(timeout = nil) -> Integer (109.0) -
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
...与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
@param timeout スリープする秒数を指定します。省略するとスリープし続けます。
@return スリープしていた秒数を返します。
@raise ThreadError... -
Thread
:: ConditionVariable # wait(mutex , timeout = nil) -> self (109.0) -
mutex のロックを解放し、カレントスレッドを停止します。 Thread::ConditionVariable#signalまたは、 Thread::ConditionVariable#broadcastで送られたシグナルを 受け取ると、mutexのロックを取得し、実行状態となります。
...け取ると、mutexのロックを取得し、実行状態となります。
@param mutex Mutex オブジェクトを指定します。
@param timeout スリープする秒数を指定します。この場合はシグナルを受け取
らなかった場合でも指定した秒数... -
Thread
:: Mutex # sleep(timeout = nil) -> Integer (109.0) -
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
...与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
@param timeout スリープする秒数を指定します。省略するとスリープし続けます。
@return スリープしていた秒数を返します。
@raise ThreadError......与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
@param timeout スリープする秒数を指定します。省略するとスリープし続けます。
@return タイムアウトした時は nil を、それ以外はスリープし... -
Thread
. handle _ interrupt(hash) { . . . } -> object (26.0) -
スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを 実行します。
...事ができます。
==== TimeoutError 対策
例:TimeoutError 発生のタイミングを制御する例
require 'timeout'
Thread.handle_interrupt(TimeoutError => :never) {
timeout(10){
# TimeoutError => :never の指定により、ここでは TimeoutError が発生しない。......ead.handle_interrupt(TimeoutError => :on_blocking) {
# :on_blocking な処理は TimeoutError が発生し得る。
}
# TimeoutError => :never の指定により、ここでは TimeoutError が発生しない。
}
}
この例を ensure 節での TimeoutError 発生に応......用する事でリソースリー
クに備える事ができます。Timeout.#timeout はスレッドを使って実装さ
れているため、Thread.handle_interrupt による制御が有効です。
==== Stack control settings
It's possible to stack multiple levels of ::handle_interrupt blocks...