We want reliable timeouts, but dont want to hard-code SystemTimer everywhere, so atm we are using this:
# lib/safe_timeout.rb
# stolen from klarlack -- http://github.com/schoefmax/klarlack
# to get an reliable timeout that wont fail on other platforms
# or if sytem_timer is missing
SafeTimeout = begin
# Try to use the SystemTimer gem instead of Ruby's timeout library
# when running on something that looks like Ruby 1.8.x. See:
# http://ph7spot.com/articles/system_timer
# We don't want to bother trying to load SystemTimer on jruby and
# ruby 1.9+.
if RUBY_VERSION =~ /^1\.8\./ and RUBY_PLATFORM !~ /java/
require 'system_timer'
SystemTimer
else
require 'timeout'
Timeout
end
rescue LoadError => e
$stderr.puts "Could not load SystemTimer gem, falling back to Ruby's slower/unsafe timeout library: #{e.message}"
require 'timeout'
Timeout
end