Module: Upfluence::Timeout

Defined in:
lib/upfluence/timeout.rb

Class Method Summary collapse

Class Method Details

.timeout(sec, klass = nil, message = nil, &block) ⇒ Object

Raises:

  • (klass || ::Timeout::Error)


8
9
10
11
12
13
14
15
16
# File 'lib/upfluence/timeout.rb', line 8

def self.timeout(sec, klass = nil, message = nil, &block)
  effective = [sec, Upfluence.context.timeout].compact.min

  raise(klass || ::Timeout::Error, message) if effective <= 0

  Upfluence.context.with_timeout(effective) do
    ::Timeout.timeout(effective, klass, message, &block)
  end
end