24件ヒット
[1-24件を表示]
(0.018秒)
検索結果
-
Thread
. handle _ interrupt(hash) { . . . } -> object (24255.0) -
スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを 実行します。
...延期されます。本
メソッドは sigprocmask(3) に似ています。
@return ブロックの評価結果を返します。
@raise ArgumentError ブロックを指定しなかった場合に発生します。
=== 注意
非同期割り込みの利用は難しいため、スレッド間......生のタイミングを制御する例
th = Thread.new do
Thread.handle_interrupt(RuntimeError => :never) {
begin
# 安全にリソースの割り当てが可能
Thread.handle_interrupt(RuntimeError => :immediate) {
# ...
}
ensure
# 安......ntimeError を無視(延期)している間はリソースの割り当てや ensure
節でリソースの解放を安全に行う事ができます。
==== TimeoutError 対策
例:TimeoutError 発生のタイミングを制御する例
require 'timeout'
Thread.handle_interrupt(TimeoutError =>... -
Thread
. pending _ interrupt?(error = nil) -> bool (6242.0) -
非同期割り込みのキューが空かどうかを返します。
...Thread.handle_interrupt は非同期割り込みの発生を延期させるのに使
用しますが、本メソッドは任意の非同期割り込みが存在するかどうかを確認す
るのに使用します。
本メソッドが true を返した場合、Thread.handle_interrupt で例外......@param error 対象の例外クラスを指定します。省略した場合は全ての例外を対
象に確認を行います。
例: 延期させられていた例外をただちに発生させる。
def Thread.kick_interrupt_immediately
Thread.handle_interrupt(Object => :......th = Thread.new{
Thread.handle_interrupt(RuntimeError => :on_blocking){
while true
...
# ここまでで割り込みが発生しても安全な状態になった。
if Thread.pending_interrupt?
Thread.handle_interrupt(Object => :immediate){}
en...
