[rubygems/rubygems] Use a constant empty tar header to avoid extra allocations
[ruby.git] / sample / timeout.rb
blobad4459aff03c1cca0bf83c4ee7e79019bd1909ae
1 require 'timeout'
3 def progress(n = 5)
4   n.times {|i| print i; STDOUT.flush; sleep 1}
5   puts "never reach"
6 end
8 p Timeout.timeout(5) {
9   45
11 p Timeout.timeout(5, Timeout::Error) {
12   45
14 p Timeout.timeout(nil) {
15   54
17 p Timeout.timeout(0) {
18   54
20 begin
21   Timeout.timeout(5) {progress}
22 rescue => e
23   puts e.message
24 end
25 begin
26   Timeout.timeout(3) {
27     begin
28       Timeout.timeout(5) {progress}
29     rescue => e
30       puts "never reach"
31     end
32   }
33 rescue => e
34   puts e.message
35 end
36 class MyTimeout < StandardError
37 end
38 begin
39   Timeout.timeout(2, MyTimeout) {progress}
40 rescue MyTimeout => e
41   puts e.message
42 end