ライブラリ
- ビルトイン (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) - lock (11)
- signaled? (11)
- signm (11)
- signo (11)
- unlock (11)
- wait (22)
-
wait
_ until (11) -
wait
_ while (11)
検索結果
先頭5件
-
Thread
:: ConditionVariable # signal -> self (24208.0) -
状態変数を待っているスレッドを1つ再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。
...ad::ConditionVariable#wait
で指定した mutex のロックを試みます。
@return 常に self を返します。
//emlist[例][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
# => a1
# => a1
# => a1
# => a2
//}... -
MonitorMixin
:: ConditionVariable # signal -> () (24202.0) -
その条件変数で待っているスレッドがあれば実行を再開させます。
...その条件変数で待っているスレッドがあれば実行を再開させます。
複数のスレッドが待っている場合には1つのスレッドのみ
実行を再開します。
@see MonitorMixin::ConditionVariable#broadcast... -
Shell
:: ProcessController # kill _ job(signal , command) -> Integer (12208.0) -
指定されたコマンドにシグナルを送ります。
...指定されたコマンドにシグナルを送ります。
@param signal シグナルを整数かその名前の文字列で指定します。
負の値を持つシグナル(あるいはシグナル名の前に-)を指定すると、
プロセスではなくプロセ......スグループにシグナルを送ります。
@param command コマンドを指定します。
@see Process.#kill... -
Process
:: Status # signaled? -> bool (12201.0) -
プロセスがハンドラを定義していないシグナルを受けて終了した場合に真 を返します。
プロセスがハンドラを定義していないシグナルを受けて終了した場合に真
を返します。 -
Shell
# kill(signal , job) -> Integer (9208.0) -
@todo
...@todo
ジョブにシグナルを送ります。
@param signal
@param job... -
Shell
:: SystemCommand # kill(signal) -> Integer (9208.0) -
自身のプロセスにシグナルを送ります。
...m signal シグナルを整数かその名前の文字列で指定します。
負の値を持つシグナル(あるいはシグナル名の前に-)を指定すると、
プロセスではなくプロセスグループにシグナルを送ります。
@see Process.#kill... -
MonitorMixin
:: ConditionVariable # wait _ while { . . . } -> () (9107.0) -
モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たしている間停止します。
...在のスレッドを
ブロックで指定した条件を満たしている間停止します。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果によってこ......のメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。
@raise ThreadError ロックを持っていないスレッドがこのメソッドを呼びだした場合に発生します
@see MonitorMixin::ConditionVariable#wait... -
MonitorMixin
:: ConditionVariable # wait _ until { . . . } -> () (6107.0) -
モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たすまで停止します。
...、現在のスレッドを
ブロックで指定した条件を満たすまで停止します。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果によってこ......のメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。
@see MonitorMixin::ConditionVariable#wait... -
Mutex
# lock -> self (6107.0) -
mutex オブジェクトをロックします。一度に一つのス レッドだけが mutex をロックできます。既にロックされている mutex に対してロックを行おうとしたスレッドは mutex のロックが解放さ れるまで、実行が停止されます。
...す。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
@see Thread::Mutex#unlock... -
Mutex
# unlock -> self (6107.0) -
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。
...れます。
@return self を返します。
例:
m = Mutex.new
begin
m.lock
# critical part
ensure
m.unlock
end
Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると Thr......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です。
...ffします。デフォルト値はfalseです。
trueを渡すとデッドロックを検知しなくなります。
//emlist[][ruby]{
Thread.ignore_deadlock = true
queue = Thread::Queue.new
trap(:SIGUSR1){queue.push "Received signal"}
# ignore_deadlockがfalseだとエラーが発生する
put......s queue.pop
//}
@see Thread#ignore_deadlock... -
Thread
:: Mutex # lock -> self (6107.0) -
mutex オブジェクトをロックします。一度に一つのス レッドだけが mutex をロックできます。既にロックされている mutex に対してロックを行おうとしたスレッドは mutex のロックが解放さ れるまで、実行が停止されます。
...す。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
@see Thread::Mutex#unlock... -
Thread
:: Mutex # unlock -> self (6107.0) -
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。
...れます。
@return self を返します。
例:
m = Mutex.new
begin
m.lock
# critical part
ensure
m.unlock
end
Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると Thr......m = Mutex.new
m.lock
Thread.new do
m.unlock # => ThreadError
end.join
@raise ThreadError self がロックされていない場合や self をロックしたス
レッド以外から呼ばれた場合に発生します。
また、Signal.#trap に指定... -
SignalException
# signo -> Integer (6007.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
//}...