Module: Mongo::Timeout
- Defined in:
- lib/mongo/timeout.rb
Class Method Summary collapse
-
.timeout(sec, klass = nil, message = nil) ⇒ Object
A wrapper around Ruby core’s Timeout::timeout method that provides a standardized API for Ruby versions older and newer than 2.4.0, which is when the third argument was introduced.
Class Method Details
.timeout(sec, klass = nil, message = nil) ⇒ Object
Note:
Ruby versions older than 2.4.0 do not support specifying a custom error message, and any error message passed in as an argument will be ignored.
A wrapper around Ruby core’s Timeout::timeout method that provides a standardized API for Ruby versions older and newer than 2.4.0, which is when the third argument was introduced.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/mongo/timeout.rb', line 32 def timeout(sec, klass=nil, =nil) if RUBY_VERSION < '2.4.0' ::Timeout.timeout(sec, klass) do yield end else # Jruby Timeout::timeout method does not support passing nil arguments. # Remove the nil arguments before passing them along to the core # Timeout::timeout method. optional_args = [klass, ].compact ::Timeout.timeout(sec, *optional_args) do yield end end end |