種類
- インスタンスメソッド (87)
- モジュール関数 (77)
- 特異メソッド (44)
- クラス (42)
- モジュール (11)
クラス
- Mutex (6)
-
Process
:: Status (11) - SignalException (55)
- Thread (14)
-
Thread
:: ConditionVariable (18) -
Thread
:: Mutex (27)
キーワード
- ConditionVariable (9)
- Interrupt (11)
- Signal (11)
- SignalException (11)
- Status (11)
-
handle
_ interrupt (11) -
ignore
_ deadlock= (3) - kill (11)
- list (11)
- lock (11)
- new (33)
- signaled? (11)
- signame (11)
- signm (11)
- signo (11)
- synchronize (11)
- trap (44)
- unlock (11)
- wait (9)
検索結果
先頭5件
-
SignalException
. new(sig _ number) -> SignalException (11132.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 (11132.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
# signo -> Integer (11008.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 (11002.0) -
self.message のエイリアスです。
...self.message のエイリアスです。
//emlist[例][ruby]{
begin
Process.kill('HUP', Process.pid)
sleep
rescue SignalException => e
puts e.signm # => SIGHUP
end
//}... -
Kernel
. # trap(signal) { . . . } -> String | Proc | nil (8172.0) -
signal で指定された割り込みにたいするハンドラとして command を登録します。Signal.#trapと同じです。
...
signal で指定された割り込みにたいするハンドラとして
command を登録します。Signal.#trapと同じです。
Signal.#trapの使用を推奨します。
@param signal Signal.#trap 参照
@param command Signal.#trap 参照
@see Signal.#trap,Signal... -
Kernel
. # trap(signal , command) -> String | Proc | nil (8172.0) -
signal で指定された割り込みにたいするハンドラとして command を登録します。Signal.#trapと同じです。
...
signal で指定された割り込みにたいするハンドラとして
command を登録します。Signal.#trapと同じです。
Signal.#trapの使用を推奨します。
@param signal Signal.#trap 参照
@param command Signal.#trap 参照
@see Signal.#trap,Signal... -
Process
. # kill(signal , pid , *rest) -> Integer (8125.0) -
pid で指定されたプロセスにシグナルを送ります。signal はシグナル番号(整数)かその名前(文字列またはSymbol)で指定します。 全てのシグナル送信に成功した場合、指定した pid の総数を返します。
...プロセスにシグナルを送ります。signal
はシグナル番号(整数)かその名前(文字列またはSymbol)で指定します。
全てのシグナル送信に成功した場合、指定した pid の総数を返します。
@param signal シグナルをシグナル番号(整数)か... -
Process
:: Status (8068.0) -
プロセスの終了ステータスを表すクラスです。 メソッド Process.#wait2 などの返り値として使われます。
...り値として使われます。
=== 使用例
wait を使用した例
fork { exit }
Process.wait
case
when $?.signaled?
p "child #{$?.pid} was killed by signal #{$?.termsig}"
if $?.coredump? # システムがこのステータスをサポートしてなければ常にfalse......child #{$?.pid} was stopped by signal #{$?.stopsig}"
when $?.exited?
p "child #{$?.pid} exited normally. status=#{$?.exitstatus}"
else
p "unknown status %#x" % $?.to_i
end
SIGCHLD を trap する例
trap(:SIGCHLD) {|sig|
puts "interrupted by signal #{sig} at #{caller[1]}"......CED)
case
when $?.signaled?
puts " child #{$?.pid} was killed by signal #{$?.termsig}"
if $?.coredump?
puts " child #{$?.pid} dumped core."
end
when $?.stopped?
puts " child #{$?.pid} was stopped by signal #{$?.stopsig}"
when $?... -
Thread
:: ConditionVariable (8026.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
...など)が満たされるまで wait メソッドで
スレッドを止めます。他のスレッド b において条件が満たされたなら signal
メソッドでスレッド a に対して条件が成立したことを通知します。これが典型的な
使用例です。
mutex = Mu.........
}
}
b = Thread.start {
mutex.synchronize {
# 上の条件を満たすための操作
cv.signal
}
}
以下は 14445 で紹介されている例です。@q が空になった場合、
あるいは満タンになった場合に Con......@full.wait(@mutex) if count == @max
@q.push v
@empty.signal if count == 1
}
end
def deq
@mutex.synchronize{
@empty.wait(@mutex) if count == 0
v = @q.shift
@full.signal if count == (@max - 1)
v
}
end
alias send enq... -
Thread
:: ConditionVariable # wait(mutex , timeout = nil) -> self (8024.0) -
mutex のロックを解放し、カレントスレッドを停止します。 Thread::ConditionVariable#signalまたは、 Thread::ConditionVariable#broadcastで送られたシグナルを 受け取ると、mutexのロックを取得し、実行状態となります。
...mutex のロックを解放し、カレントスレッドを停止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。
@param mutex Mutex オブ......ます。この場合はシグナルを受け取
らなかった場合でも指定した秒数が経過するとスリープを終了
します。省略するとスリープし続けます。
@see Thread::ConditionVariable#signal, Thread::ConditionVariable#broadcast...