Module: Timeout::Extensions

Defined in:
lib/timeout/extensions/version.rb,
lib/timeout/extensions.rb

Constant Summary collapse

VERSION =
"0.0.0"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(mod) ⇒ Object



9
10
11
12
13
14
# File 'lib/timeout/extensions.rb', line 9

def self.extended(mod)
  mod.singleton_class.class_eval do
    alias_method :timeout_without_handler, :timeout
    alias_method :timeout, :timeout_with_handler
  end
end

.timeout_with_handler(*args, &block) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/timeout/extensions.rb', line 16

def timeout_with_handler(*args, &block)
  if timeout_handler = Thread.current.timeout_handler
    timeout_handler.call(*args, &block)
  else
    timeout_without_handler(*args, &block)
  end
end

Instance Method Details

#timeout_with_handler(*args, &block) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/timeout/extensions.rb', line 16

def timeout_with_handler(*args, &block)
  if timeout_handler = Thread.current.timeout_handler
    timeout_handler.call(*args, &block)
  else
    timeout_without_handler(*args, &block)
  end
end