This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
Adding a Timeout to a Long-Running Operation | ||
---|---|---|
Code | Expected | Actual |
require 'timeout' before = Time.now begin status = Timeout.timeout(5) { sleep } rescue Timeout::Error puts "I only slept for #{Time.now-before} seconds." end |
I only slept for 5.035492 seconds. |
I only slept for 5.011398 seconds. |
def count_for_five_seconds $counter = 0 begin Timeout::timeout(5) { loop { $counter += 1 } } rescue Timeout::Error puts "I can count to #{$counter} in 5 seconds." end end count_for_five_seconds |
I can count to 2532825 in 5 seconds. |
I can count to 2575012 in 5 seconds. |
$counter |
2532825 | 2575012 |