Issue #4681 has been reported by mathew murphy.

----------------------------------------
Bug #4681: Timeout.timeout doesn't actually time out?
http://redmine.ruby-lang.org/issues/4681

Author: mathew murphy
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: 1.9.2p180


Documentation for Timeout says "A way of performing a potentially long-running operation in a thread, and terminating its execution if it hasn”Ęt finished by a fixed amount of time."

This doesn't actually seem to be what it does.

Example code:

#!/usr/bin/ruby                                                                 
# encoding: UTF-8                                                               
                                                                                
require 'open3'                                                                 
require 'timeout'                                                               
                                                                                
puts "Time out after 2 seconds. Count them..."                                  
result = Timeout.timeout(2) do                                                  
  stdin, stdout, stderr = Open3.capture3("sleep 30")                            
  output = stdout.read + "\n" + stderr.read                                     
end                                                                             

On my systems, this doesn't time out after 2 seconds. Instead, it runs for 30 seconds, and then throws an error saying it took longer than 2 seconds.


-- 
http://redmine.ruby-lang.org