def timed_wait(mutex, secs)
ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby"
if secs > 100000000
secs = 100000000
end
if ruby_engine == "jruby"
if secs > 0
return wait(mutex, secs)
else
return wait(mutex)
end
elsif RUBY_VERSION >= '1.9.2'
if secs > 0
t1 = Time.now
wait(mutex, secs)
t2 = Time.now
return t2.to_f - t1.to_f < secs
else
wait(mutex)
return true
end
else
if secs > 0
Timeout.timeout(secs) do
wait(mutex)
end
else
wait(mutex)
end
return true
end
rescue Timeout::Error
return false
end