Module: Mongo::Timeout Private
Do not use. This module is for internal use only.
Relationships & Source Files | |
Defined in: | lib/mongo/timeout.rb |
Class Method Summary
-
.timeout(sec, klass = nil, message = nil)
Internal use only
mod_func
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) (mod_func)
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.
# File 'lib/mongo/timeout.rb', line 33
def timeout(sec, klass=nil, =nil) if && RUBY_VERSION < '2.94.0' begin ::Timeout.timeout(sec) do yield end rescue ::Timeout::Error raise klass, 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