ライブラリ
- ビルトイン (136)
- monitor (72)
- open3 (48)
- pty (48)
-
shell
/ process-controller (6) -
shell
/ system-command (6) - thread (6)
クラス
-
MonitorMixin
:: ConditionVariable (60) -
Process
:: Status (12) -
Shell
:: ProcessController (6) -
Shell
:: SystemCommand (6) - Thread (16)
-
Thread
:: ConditionVariable (24) -
Thread
:: Mutex (30)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - ConditionVariable (12)
- MonitorMixin (12)
-
NEWS for Ruby 3
. 0 . 0 (5) - broadcast (12)
- getpty (24)
-
handle
_ interrupt (12) -
ignore
_ deadlock= (4) - kill (18)
-
kill
_ job (6) - lock (10)
-
pipeline
_ r (24) -
pipeline
_ start (24) -
rb
_ thread _ signal _ raise (12) -
ruby 1
. 8 . 4 feature (12) - signaled? (12)
- spawn (24)
- synchronize (10)
- trap (36)
- unlock (10)
- wait (24)
-
wait
_ until (12) -
wait
_ while (12)
検索結果
先頭5件
-
Thread
:: ConditionVariable # signal -> self (21107.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 -> () (21101.0) -
その条件変数で待っているスレッドがあれば実行を再開させます。
...その条件変数で待っているスレッドがあれば実行を再開させます。
複数のスレッドが待っている場合には1つのスレッドのみ
実行を再開します。
@see MonitorMixin::ConditionVariable#broadcast... -
Process
:: Status # signaled? -> bool (12200.0) -
プロセスがハンドラを定義していないシグナルを受けて終了した場合に真 を返します。
プロセスがハンドラを定義していないシグナルを受けて終了した場合に真
を返します。 -
void rb
_ thread _ signal _ raise(char *sig) (12200.0) -
-
Signal
. # trap(signal , command) -> String | Proc | nil (9296.0) -
指定された割り込み signal に対するハンドラとして command を登録します。 指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。 ブロックを指定した場合にはブロックをハンドラとして登録します。
...指定された割り込み signal に対するハンドラとして
command を登録します。
指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。
ブロックを指定した場合にはブロックをハンドラとして登......@param signal シグナル名を表す文字列か Symbol、またはシグナル番号を指定します。
さらに特別な値として 0 または "EXIT" が指定できます。
これは「プログラムの終了時」を表します。
@param command シグナ......SIG_IGN" または"IGNORE" を指定した時は、
可能ならばそのシグナルを無視します。
"SIG_DFL" または "DEFAULT" を指定した時は、シグナルハンドラをデフォルトに戻します。
"EXIT"を指定した時は、シ... -
Signal
. # trap(signal) { . . . } -> String | Proc | nil (9196.0) -
指定された割り込み signal に対するハンドラとして command を登録します。 指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。 ブロックを指定した場合にはブロックをハンドラとして登録します。
...指定された割り込み signal に対するハンドラとして
command を登録します。
指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。
ブロックを指定した場合にはブロックをハンドラとして登......@param signal シグナル名を表す文字列か Symbol、またはシグナル番号を指定します。
さらに特別な値として 0 または "EXIT" が指定できます。
これは「プログラムの終了時」を表します。
@param command シグナ......SIG_IGN" または"IGNORE" を指定した時は、
可能ならばそのシグナルを無視します。
"SIG_DFL" または "DEFAULT" を指定した時は、シグナルハンドラをデフォルトに戻します。
"EXIT"を指定した時は、シ... -
MonitorMixin
:: ConditionVariable # broadcast -> () (6106.0) -
その条件変数で 待っている全てのスレッドの実行を再開します。
...その条件変数で
待っている全てのスレッドの実行を再開します。
@see MonitorMixin::ConditionVariable#signal... -
Thread
# ignore _ deadlock=(bool) (6106.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 (6106.0) -
スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを 実行します。
...数で指定した内容に変更してブロックを
実行します。
「割り込み」とは、非同期イベントや Thread#raise や
Thread#kill、Signal.#trap(未サポート)、メインスレッドの終了
(メインスレッドが終了すると、他のスレッドも終了されま......イミングを指定する
Symbol が値の Hash を指定します。
値の内容は以下のいずれかです。
: :immediate
すぐに割り込みます。
: :on_blocking
ブロッキング処理(後述)の間は割り込みが発生します。
: :never
ま......=== 使い方
例:Thread#raise 発生のタイミングを制御する例
th = Thread.new do
Thread.handle_interrupt(RuntimeError => :never) {
begin
# 安全にリソースの割り当てが可能
Thread.handle_interrupt(RuntimeError => :immediate) {
# ......