209件ヒット
[201-209件を表示]
(0.019秒)
種類
- モジュール関数 (81)
- 特異メソッド (72)
- インスタンスメソッド (56)
ライブラリ
- ビルトイン (72)
- coverage (24)
- erb (8)
- objspace (36)
- rake (24)
-
rubygems
/ dependency _ list (12) - timeout (21)
-
win32
/ registry (12)
クラス
- Coverage (24)
- ERB (8)
-
Gem
:: DependencyList (12) - Object (12)
モジュール
- FileUtils (24)
- GC (24)
-
GC
:: Profiler (12) - ObjectSpace (48)
- Timeout (21)
-
Win32
:: Registry :: API (12)
オブジェクト
- ENV (12)
キーワード
- FlushKey (12)
-
count
_ nodes (12) -
count
_ objects (12) -
count
_ objects _ size (12) -
count
_ tdata _ objects (12) -
latest
_ gc _ info (12) -
marshal
_ dump (12) -
peek
_ result (12) -
raw
_ data (12) - reject (12)
-
result
_ with _ hash (8) - ruby (12)
-
spec
_ predecessors (12) - stat (12)
- timeout (21)
検索結果
-
Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object (30.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...外部コマンドのタイムアウト
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))" ; exit 0' INT
m1=0
m2=0......let m2++
fi
done
SHELL_EOT
}
File.chmod(0755, "loop.sh")
t = 10 # 10 秒でタイムアウト
begin
pid = nil
com = nil
Timeout.timeout(t) {
# system だととまらない
# 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", com.read
com.close unless com.nil?
end
#止まっているか確認する。
#system("ps au")...