るりまサーチ

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

別のキーワード

  1. kernel require
  2. getoptlong require_order
  3. rubygems/custom_require require
  4. irb/ext/use-loader irb_require
  5. require execute

ライブラリ

モジュール

キーワード

検索結果

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

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

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

例 長い計算のタイムアウト
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 =...
...19: pi = 3.141443

例 独自の例外を発生させるタイムアウト
#!/usr/bin/env ruby

require
'timeout'

class MYError < Exception;end
begin
Timeout.timeout(5, MYError) {
sleep
(30)
}
rescue MYError => err
puts "MYError"
puts err
end

=== 注意

timeout...
...ている) が終了した直後((A)の箇所)で Timeout::Error 例外があがっています。

例 timeout が割り込めない
require
'timeout'
require
'socket'

t = 0.1
start = Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")
# (A)...
...ッセージを指定します.省略した場合は
"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 =...

Timeout.#timeout(sec, exception_class, message) {|i| ... } -> object (37.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 =...
...19: pi = 3.141443

例 独自の例外を発生させるタイムアウト
#!/usr/bin/env ruby

require
'timeout'

class MYError < Exception;end
begin
Timeout.timeout(5, MYError) {
sleep
(30)
}
rescue MYError => err
puts "MYError"
puts err
end

=== 注意

timeout...
...ている) が終了した直後((A)の箇所)で Timeout::Error 例外があがっています。

例 timeout が割り込めない
require
'timeout'
require
'socket'

t = 0.1
start = Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")
# (A)...

Open3.#pipeline_start(*cmds) -> [Thread] (13.0)

指定したコマンドのリストをパイプで繋いで順番に実行します。

...実行したプロセスを待つためのスレッ
ドの配列を返します。

例:

require
"open3"

# xeyesを10秒だけ実行する。
Open3.pipeline_start("xeyes") {|ts|
sleep
10
t = ts[0]
Process.kill("TERM", t.pid)
p t.value #=> #<Process::Status: pid 911...

Open3.#pipeline_start(*cmds) {|wait_thrs| ... } -> () (13.0)

指定したコマンドのリストをパイプで繋いで順番に実行します。

...実行したプロセスを待つためのスレッ
ドの配列を返します。

例:

require
"open3"

# xeyesを10秒だけ実行する。
Open3.pipeline_start("xeyes") {|ts|
sleep
10
t = ts[0]
Process.kill("TERM", t.pid)
p t.value #=> #<Process::Status: pid 911...