ライブラリ
- ビルトイン (87)
- monitor (55)
- shell (6)
-
shell
/ process-controller (6) -
shell
/ system-command (6) - thread (4)
クラス
-
MonitorMixin
:: ConditionVariable (55) - Mutex (6)
-
Process
:: Status (11) - Shell (6)
-
Shell
:: ProcessController (6) -
Shell
:: SystemCommand (6) - SignalException (22)
- Thread (3)
-
Thread
:: ConditionVariable (22) -
Thread
:: Mutex (27)
キーワード
- broadcast (11)
-
ignore
_ deadlock= (3) - kill (12)
-
kill
_ job (6) - lock (11)
- signaled? (11)
- signm (11)
- signo (11)
- synchronize (11)
- unlock (11)
- wait (22)
-
wait
_ until (11) -
wait
_ while (11)
検索結果
先頭5件
-
Thread
:: ConditionVariable # signal -> self (21108.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"
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 -> () (21102.0) -
その条件変数で待っているスレッドがあれば実行を再開させます。
...その条件変数で待っているスレッドがあれば実行を再開させます。
複数のスレッドが待っている場合には1つのスレッドのみ
実行を再開します。
@see MonitorMixin::ConditionVariable#broadcast... -
Process
:: Status # signaled? -> bool (9101.0) -
プロセスがハンドラを定義していないシグナルを受けて終了した場合に真 を返します。
プロセスがハンドラを定義していないシグナルを受けて終了した場合に真
を返します。 -
Thread
:: ConditionVariable # wait(mutex , timeout = nil) -> self (6123.0) -
mutex のロックを解放し、カレントスレッドを停止します。 Thread::ConditionVariable#signalまたは、 Thread::ConditionVariable#broadcastで送られたシグナルを 受け取ると、mutexのロックを取得し、実行状態となります。
...mutex のロックを解放し、カレントスレッドを停止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。
@param mutex Thread::Mutex......@param timeout スリープする秒数を指定します。この場合はシグナルを受け取
らなかった場合でも指定した秒数が経過するとスリープを終了
します。省略するとスリープし続けます。
@see Thread::ConditionVar......iable#signal, Thread::ConditionVariable#broadcast......mutex のロックを解放し、カレントスレッドを停止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。
@param mutex Mutex オブ... -
MonitorMixin
:: ConditionVariable # broadcast -> () (6107.0) -
その条件変数で 待っている全てのスレッドの実行を再開します。
...その条件変数で
待っている全てのスレッドの実行を再開します。
@see MonitorMixin::ConditionVariable#signal... -
MonitorMixin
:: ConditionVariable # wait(timeout = nil) -> bool (6107.0) -
モニタのロックを開放し、現在のスレッドを停止します。
...クを保持している必要があります。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast
で起こされるまでスレッドは停止し続けます。
timeout を与えた場合は最大 timeout 秒まで停止した後にスレッドを
再開しま......よって危険領域(critical section)上で動作している
スレッドはただ一つになり、排他を実現します。
true を返します。timeout が与えられていて待ち時間が timeout を
越えた場合は false を返します。
@param timeout タイムアウトまで......の秒数。指定しなかった場合はタイムアウトしません。
@raise ThreadError ロックを持っていないスレッドがこのメソッドを呼びだした場合に発生します
@see MonitorMixin::ConditionVariable#wait_while, MonitorMixin::ConditionVariable#wait_until... -
MonitorMixin
:: ConditionVariable # wait _ until { . . . } -> () (6107.0) -
モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たすまで停止します。
...放し、現在のスレッドを
ブロックで指定した条件を満たすまで停止します。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果によっ......てこのメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。
@see MonitorMixin::ConditionVariable#wait... -
MonitorMixin
:: ConditionVariable # wait _ while { . . . } -> () (6107.0) -
モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たしている間停止します。
...、現在のスレッドを
ブロックで指定した条件を満たしている間停止します。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果によっ......このメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。
@raise ThreadError ロックを持っていないスレッドがこのメソッドを呼びだした場合に発生します
@see MonitorMixin::ConditionVariable#wait... -
SignalException
# signo -> Integer (6107.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 (6101.0) -
self.message のエイリアスです。
...self.message のエイリアスです。
//emlist[例][ruby]{
begin
Process.kill('HUP', Process.pid)
sleep
rescue SignalException => e
puts e.signm # => SIGHUP
end
//}...