timeout
- 1_8_6_287
- 1_8_7_72
- 1_8_7_330
- 1_9_1_378 (0)
- 1_9_2_180 (0)
- 1_9_3_125 (38)
- 1_9_3_392 (0)
- 2_1_10 (11)
- 2_2_9 (0)
- 2_4_6 (12)
- 2_5_5 (0)
- 2_6_3 (0)
- What's this?
timeout(sec, klass = nil)
public
Perform an operation in a block, timing it out if it takes longer than sec seconds to complete.
sec |
Number of seconds to wait for the block to terminate. Any number may be used, including Floats to specify fractional seconds. |
klass |
Exception Class to raise if the block fails to terminate in sec seconds. Omitting will use the default, Timeout::Error |
The block will be executed on another thread and will be given one argument: sec.
Returns the result of the block if the block completed before sec seconds, otherwise throws an exception, based on the value of klass.
Note that this is both a method of module Timeout, so you can include Timeout into your classes so they have a #timeout method, as well as a module method, so you can call it directly as Timeout.timeout().