るりまサーチ

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

別のキーワード

  1. _builtin kill
  2. thread kill
  3. kill execute
  4. process kill
  5. irb/cmd/subirb kill

種類

ライブラリ

モジュール

キーワード

検索結果

Timeout.#timeout(sec, exception_class = nil) {|i| ... } -> object (36.0)

ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。

...イムアウトした時、発生させる例外を指定します.

例 長い計算のタイムアウト
require 'timeout'

def calc_pi(min)
loop
do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end

t = 5
min = [ 0, 0]
begin
Timeou...
...工夫が必要です。

例 外部コマンドのタイムアウト
require 'timeout'

# テスト用のシェルをつくる。
File.open("loop.sh", "w"){|fp|
fp.print <<SHELL_EOT
#!/bin/bash

S="scale=10"
M=32767

trap 'echo "$S; $m1/($m1+$m2)*4" | bc ; echo "count = $((m1+m2))...
...stem だととまらない
# system("./loop.sh")
com = IO.popen("./loop.sh")
pid = com.pid
while line = com.gets
print line
end
}
rescue Timeout::Error => err
puts "timeout: shell execution."
Process.kill('SIGINT', pid)
printf "[result]\t%s", c...
...した場合は
"execution expired" になります.

例 長い計算のタイムアウト
require 'timeout'

def calc_pi(min)
loop
do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end

t = 5
min = [ 0, 0]
begin
Timeou...

Timeout.#timeout(sec, exception_class, message) {|i| ... } -> object (36.0)

ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。

...した場合は
"execution expired" になります.

例 長い計算のタイムアウト
require 'timeout'

def calc_pi(min)
loop
do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end

t = 5
min = [ 0, 0]
begin
Timeou...
...工夫が必要です。

例 外部コマンドのタイムアウト
require 'timeout'

# テスト用のシェルをつくる。
File.open("loop.sh", "w"){|fp|
fp.print <<SHELL_EOT
#!/bin/bash

S="scale=10"
M=32767

trap 'echo "$S; $m1/($m1+$m2)*4" | bc ; echo "count = $((m1+m2))...
...stem だととまらない
# system("./loop.sh")
com = IO.popen("./loop.sh")
pid = com.pid
while line = com.gets
print line
end
}
rescue Timeout::Error => err
puts "timeout: shell execution."
Process.kill('SIGINT', pid)
printf "[result]\t%s", c...

Process::Status (30.0)

プロセスの終了ステータスを表すクラスです。 メソッド Process.#wait2 などの返り値として使われます。

...て使われます。

=== 使用例

wait を使用した例

fork { exit }
Process.wait
case
when $?.signaled?
p "child #{$?.pid} was killed by signal #{$?.termsig}"
if $?.coredump? # システムがこのステータスをサポートしてなければ常にfalse
p "child...
...ます

while Process.waitpid(-1, Process::WNOHANG|Process::WUNTRACED)
case
when $?.signaled?
puts " child #{$?.pid} was killed by signal #{$?.termsig}"
if $?.coredump?
puts " child #{$?.pid} dumped core."
end
when $?.stopped?
puts...
...k { sleep 1; exit }
p pid2 = fork { loop { sleep } } # signal を待つための sleep
begin
Process.kill :STOP, pid2
sleep # SIGCHLD を待つための sleep
Process.kill :CONT, pid2
Process.kill :TERM, pid2
loop
{ sleep } # SIGCHLD を...

ruby 1.8.4 feature (12.0)

ruby 1.8.4 feature ruby 1.8.4 での ruby 1.8.3 からの変更点です。

...終了せずに待ち続けてしまう可能性があるというバグを修正しました.

#
# * ext/tk/lib/multi-tk.rb: kill the meaningless loop for the deleted Tk
# interpreter.

MultiTkIp で生成した Tk インタープリタを削除した後も,
不要と...