るりまサーチ

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

別のキーワード

  1. _builtin new
  2. _builtin inspect
  3. _builtin []
  4. _builtin to_s
  5. _builtin each

検索結果

SignalException.new(sig_name) -> SignalException (29247.0)

引数で指定したシグナルに関する SignalException オブジェクトを生成して返 します。

...引数で指定したシグナルに関する SignalException オブジェクトを生成して返
します。

引数は Signal.#list に含まれるもののいずれかを指定する必要があり
ます。

@param sig_name シグナル名を Symbol オブジェクト、文字列のいずれ...
...ます。

//emlist[例][ruby]{
signal
_number = Signal.list["INT"]
se = SignalException.new(signal_number) # => #<SignalException: SIGINT>
se.signo # => 2
//}

//emlist[例][ruby]{
se = SignalException.new("INT") # => #<SignalException: SIGINT>
se.signm # => "SIGINT"
//}

@see Signal.#list...

SignalException.new(sig_number) -> SignalException (29247.0)

引数で指定したシグナルに関する SignalException オブジェクトを生成して返 します。

...引数で指定したシグナルに関する SignalException オブジェクトを生成して返
します。

引数は Signal.#list に含まれるもののいずれかを指定する必要があり
ます。

@param sig_name シグナル名を Symbol オブジェクト、文字列のいずれ...
...ます。

//emlist[例][ruby]{
signal
_number = Signal.list["INT"]
se = SignalException.new(signal_number) # => #<SignalException: SIGINT>
se.signo # => 2
//}

//emlist[例][ruby]{
se = SignalException.new("INT") # => #<SignalException: SIGINT>
se.signm # => "SIGINT"
//}

@see Signal.#list...

SignalException.new(sig_number, sig_name) -> SignalException (29247.0)

引数で指定したシグナルに関する SignalException オブジェクトを生成して返 します。

...引数で指定したシグナルに関する SignalException オブジェクトを生成して返
します。

引数は Signal.#list に含まれるもののいずれかを指定する必要があり
ます。

@param sig_name シグナル名を Symbol オブジェクト、文字列のいずれ...
...ます。

//emlist[例][ruby]{
signal
_number = Signal.list["INT"]
se = SignalException.new(signal_number) # => #<SignalException: SIGINT>
se.signo # => 2
//}

//emlist[例][ruby]{
se = SignalException.new("INT") # => #<SignalException: SIGINT>
se.signm # => "SIGINT"
//}

@see Signal.#list...

Thread::ConditionVariable#signal -> self (26121.0)

状態変数を待っているスレッドを1つ再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。

...[ruby]{
mutex = Mutex.new
cv = ConditionVariable.new
flg = true

3.times {
Thread.start {
mutex.synchronize {
puts "a1"
while (flg)
cv.wait(mutex)
end
puts "a2"
}
}
}

Thread.start {
mutex.synchronize {
flg = false
cv.signal
}
}

sleep 1

# =>...

Thread::ConditionVariable (8074.0)

スレッドの同期機構の一つである状態変数を実現するクラスです。

...レッド b において条件が満たされたなら signal
メソッドでスレッド a に対して条件が成立したことを通知します。これが典型的な
使用例です。

mutex = Mutex.new
cv = ConditionVariable.new

a = Thread.start {
mutex.synchronize {...
......
}
}

b = Thread.start {
mutex.synchronize {
# 上の条件を満たすための操作
cv.signal
}
}

以下は 14445 で紹介されている例です。@q が空になった場合、
あるいは満タンになった場合に Con...
...full = ConditionVariable.new
@empty = ConditionVariable.new
@mutex = Mutex.new
@q = []
end

def count
@q.size
end

def enq(v)
@mutex.synchronize{
@full.wait(@mutex) if count == @max
@q.push v
@empty.signal if count == 1
}...

絞り込み条件を変える

Mutex#unlock -> self (8026.0)

mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。

...= Mutex.new
begin
m.lock
# critical part
ensure
m.unlock
end

Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。

m = Mutex.new
m.lock...
...ThreadError self がロックされていない場合や self をロックしたス
レッド以外から呼ばれた場合に発生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。...

Thread::Mutex#unlock -> self (8026.0)

mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。

...= Mutex.new
begin
m.lock
# critical part
ensure
m.unlock
end

Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。

m = Mutex.new
m.lock...
...ThreadError self がロックされていない場合や self をロックしたス
レッド以外から呼ばれた場合に発生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。...

Mutex#synchronize { ... } -> object (8014.0)

mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。

...る場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。

//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # => true
# critical part
"result"
en...

Thread#ignore_deadlock=(bool) (8014.0)

デッドロック検知を無視する機能をon/offします。デフォルト値はfalseです。

...

trueを渡すとデッドロックを検知しなくなります。

//emlist[][ruby]{
Thread.ignore_deadlock = true
queue = Thread::Queue.new

trap(:SIGUSR1){queue.push "Received signal"}

# ignore_deadlockがfalseだとエラーが発生する
puts queue.pop
//}

@see Thread#ignore_deadlock...

Thread.handle_interrupt(hash) { ... } -> object (8014.0)

スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを 実行します。

...した内容に変更してブロックを
実行します。

「割り込み」とは、非同期イベントや Thread#raise や
Thread#kill、Signal.#trap(未サポート)、メインスレッドの終了
(メインスレッドが終了すると、他のスレッドも終了されます)を意...
...ドをよく理解してから利用してください。

=== 使い方

例:Thread#raise 発生のタイミングを制御する例

th = Thread.new do
Thread.handle_interrupt(RuntimeError => :never) {
begin
# 安全にリソースの割り当てが可能
Thread.handle_...

絞り込み条件を変える

Thread::Mutex#synchronize { ... } -> object (8014.0)

mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。

...る場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。

//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # => true
# critical part
"result"
en...