るりまサーチ

最速Rubyリファレンスマニュアル検索!
47件ヒット [1-47件を表示] (0.223秒)

別のキーワード

  1. _builtin new
  2. _builtin inspect
  3. _builtin []
  4. _builtin to_s
  5. _builtin each

ライブラリ

クラス

モジュール

キーワード

検索結果

Signal.#trap(signal) { ... } -> String | Proc | nil (26180.0)

指定された割り込み signal に対するハンドラとして command を登録します。 指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。 ブロックを指定した場合にはブロックをハンドラとして登録します。

...わりに command が実行されます。
ブロックを指定した場合にはブロックをハンドラとして登録します。

trap
は前回の trap で設定したハンドラを返します。
文字列を登録していた場合はそれを、
ブロックを登録していたらそ...
...Signal.trap(:INT, "p true") # => "DEFAULT"
Signal.trap(:INT) { p false } # => "p true"
Signal.trap(:INT, proc{ p nil }) # => #<Proc:0x8e45ae0@-:2>
Signal.trap(:INT, "SIG_IGN") # => #<Proc:0x8e45914@-:3>
Signal.trap(:INT, "DEFAULT") # => "IGNORE"
Signal.trap(:INT, "E...
...XIT") # => "DEFAULT"
Signal.trap(:INT, nil) # => "EXIT"

//emlist[例][ruby]{
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait

# => Terminating: 13939
# => Child died
# => Terminating: 13907
//}

@see spec/termina...

Signal.#trap(signal, command) -> String | Proc | nil (26180.0)

指定された割り込み signal に対するハンドラとして command を登録します。 指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。 ブロックを指定した場合にはブロックをハンドラとして登録します。

...わりに command が実行されます。
ブロックを指定した場合にはブロックをハンドラとして登録します。

trap
は前回の trap で設定したハンドラを返します。
文字列を登録していた場合はそれを、
ブロックを登録していたらそ...
...Signal.trap(:INT, "p true") # => "DEFAULT"
Signal.trap(:INT) { p false } # => "p true"
Signal.trap(:INT, proc{ p nil }) # => #<Proc:0x8e45ae0@-:2>
Signal.trap(:INT, "SIG_IGN") # => #<Proc:0x8e45914@-:3>
Signal.trap(:INT, "DEFAULT") # => "IGNORE"
Signal.trap(:INT, "E...
...XIT") # => "DEFAULT"
Signal.trap(:INT, nil) # => "EXIT"

//emlist[例][ruby]{
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait

# => Terminating: 13939
# => Child died
# => Terminating: 13907
//}

@see spec/termina...

Thread#ignore_deadlock=(bool) (8018.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だとエ...

Interrupt (8012.0)

SIGINT シグナルを捕捉していないときに SIGINT シグナルを受け取ると発生します。 SIGINT 以外のシグナルを受信したときに発生する例外については SignalException を参照してください。

...てください。

使用例

=begin
#SIGINTを捕捉したい場合
Signal.trap('INT'){
print "\nINTを捕捉した。\n"
exit 1
}
=end

begin
begin
print "z"
$stdout.flush
sleep(1)
end while true
rescue Interrupt
print "!!\n"
exit 1
end...

Mutex#synchronize { ... } -> object (8012.0)

mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。

...生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。

//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # => true
# critical part
"result"
end
m.locked? # => false
resu...

絞り込み条件を変える

Thread::Mutex#synchronize { ... } -> object (8012.0)

mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。

...生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。

//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # => true
# critical part
"result"
end
m.locked? # => false
resu...