ライブラリ
- ビルトイン (76)
- monitor (55)
- shell (6)
-
shell
/ process-controller (6) -
shell
/ system-command (6) - thread (4)
クラス
-
MonitorMixin
:: ConditionVariable (55) - Mutex (4)
-
Process
:: Status (11) - Shell (6)
-
Shell
:: ProcessController (6) -
Shell
:: SystemCommand (6) - SignalException (22)
- Thread (3)
-
Thread
:: ConditionVariable (22) -
Thread
:: Mutex (18)
キーワード
- broadcast (11)
-
ignore
_ deadlock= (3) - kill (12)
-
kill
_ job (6) - signaled? (11)
- signm (11)
- signo (11)
- synchronize (11)
- unlock (11)
- wait (22)
-
wait
_ until (11) -
wait
_ while (11)
検索結果
先頭5件
-
Thread
:: ConditionVariable # signal -> self (24208.0) -
状態変数を待っているスレッドを1つ再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。
...た
スレッドは Thread::ConditionVariable#wait
で指定した mutex のロックを試みます。
@return 常に self を返します。
//emlist[例][ruby]{
mutex = Mutex.new
cv = ConditionVariable.new
flg = true
3.times {
Thread.start {
mutex.synchronize {
puts "a1"
whil......e (flg)
cv.wait(mutex)
end
puts "a2"
}
}
}
Thread.start {
mutex.synchronize {
flg = false
cv.signal
}
}
sleep 1
# => a1
# => a1
# => a1
# => a2
//}... -
MonitorMixin
:: ConditionVariable # signal -> () (24202.0) -
その条件変数で待っているスレッドがあれば実行を再開させます。
...その条件変数で待っているスレッドがあれば実行を再開させます。
複数のスレッドが待っている場合には1つのスレッドのみ
実行を再開します。
@see MonitorMixin::ConditionVariable#broadcast... -
Process
:: Status # signaled? -> bool (12201.0) -
プロセスがハンドラを定義していないシグナルを受けて終了した場合に真 を返します。
プロセスがハンドラを定義していないシグナルを受けて終了した場合に真
を返します。 -
SignalException
# signo -> Integer (9107.0) -
self のシグナル番号を返します。
...self のシグナル番号を返します。
//emlist[例][ruby]{
p Signal.signame(1) # => "HUP"
begin
Process.kill('HUP', Process.pid)
sleep
rescue SignalException => e
p e.signo # => 1
end
//}... -
SignalException
# signm -> String (9101.0) -
self.message のエイリアスです。
...self.message のエイリアスです。
//emlist[例][ruby]{
begin
Process.kill('HUP', Process.pid)
sleep
rescue SignalException => e
puts e.signm # => SIGHUP
end
//}... -
MonitorMixin
:: ConditionVariable # wait _ until { . . . } -> () (6107.0) -
モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たすまで停止します。
...クを開放し、現在のスレッドを
ブロックで指定した条件を満たすまで停止します。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果......によってこのメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。
@see MonitorMixin::ConditionVariable#wait... -
Mutex
# synchronize { . . . } -> object (6107.0) -
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
...ます。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # => true
# critical part
"result"
end
m.locked? # => false
result # => "resul... -
Mutex
# unlock -> self (6107.0) -
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。
...されます。
@return self を返します。
例:
m = Mutex.new
begin
m.lock
# critical part
ensure
m.unlock
end
Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると......m = Mutex.new
m.lock
Thread.new do
m.unlock # => ThreadError
end.join
@raise ThreadError self がロックされていない場合や self をロックしたス
レッド以外から呼ばれた場合に発生します。
また、Signal.#trap に指... -
Thread
# ignore _ deadlock=(bool) (6107.0) -
デッドロック検知を無視する機能をon/offします。デフォルト値はfalseです。
...を無視する機能を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
:: Mutex # synchronize { . . . } -> object (6107.0) -
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
...ます。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # => true
# critical part
"result"
end
m.locked? # => false
result # => "resul... -
Thread
:: Mutex # unlock -> self (6107.0) -
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。
...されます。
@return self を返します。
例:
m = Mutex.new
begin
m.lock
# critical part
ensure
m.unlock
end
Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると......m = Mutex.new
m.lock
Thread.new do
m.unlock # => ThreadError
end.join
@raise ThreadError self がロックされていない場合や self をロックしたス
レッド以外から呼ばれた場合に発生します。
また、Signal.#trap に指... -
Shell
:: ProcessController # kill _ job(signal , command) -> Integer (3208.0) -
指定されたコマンドにシグナルを送ります。
...ram signal シグナルを整数かその名前の文字列で指定します。
負の値を持つシグナル(あるいはシグナル名の前に-)を指定すると、
プロセスではなくプロセスグループにシグナルを送ります。
@param command... -
Shell
:: SystemCommand # kill(signal) -> Integer (3208.0) -
自身のプロセスにシグナルを送ります。
...自身のプロセスにシグナルを送ります。
@param signal シグナルを整数かその名前の文字列で指定します。
負の値を持つシグナル(あるいはシグナル名の前に-)を指定すると、
プロセスではなくプロセスグ...