module Mongo::Timeout
@api private
Public Class Methods
Source
# File lib/mongo/timeout.rb, line 30 def timeout(sec, klass=nil, message=nil) if message && RUBY_VERSION < '2.94.0' begin ::Timeout.timeout(sec) do yield end rescue ::Timeout::Error => e raise klass, message 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, message].compact ::Timeout.timeout(sec, *optional_args) do yield end end end
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.
@param [ Numeric ] sec The number of seconds before timeout. @param [ Class ] klass The exception class to raise on timeout, optional.
When no error exception is provided, Timeout::Error is raised.
@param [ String ] message The error message passed to the exception raised
on timeout, optional. When no error message is provided, the default error message for the exception class is used.
Private Instance Methods
Source
# File lib/mongo/timeout.rb, line 30 def timeout(sec, klass=nil, message=nil) if message && RUBY_VERSION < '2.94.0' begin ::Timeout.timeout(sec) do yield end rescue ::Timeout::Error => e raise klass, message 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, message].compact ::Timeout.timeout(sec, *optional_args) do yield end end end
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.
@param [ Numeric ] sec The number of seconds before timeout. @param [ Class ] klass The exception class to raise on timeout, optional.
When no error exception is provided, Timeout::Error is raised.
@param [ String ] message The error message passed to the exception raised
on timeout, optional. When no error message is provided, the default error message for the exception class is used.