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