class Timeout::ExitException

Raised by Timeout#timeout when the block times out.

Attributes

thread[R]

Public Class Methods

catch(*args) { |exc| ... } click to toggle source
# File lib/timeout.rb, line 29
def self.catch(*args)
 exc = new(*args)
 exc.instance_variable_set(:@thread, Thread.current)
 exc.freeze
 ::Kernel.catch(exc) {yield exc}
end

Public Instance Methods

exception(*) click to toggle source
# File lib/timeout.rb, line 36
def exception(*)
 if self.thread == Thread.current
 bt = caller
 begin
 throw(self, bt)
 rescue ArgumentError => e
 raise unless e.message.start_with?("uncaught throw")
 raise Error, message, backtrace
 end
 end
 self
end