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