In Files

  • ruby-3.1.2/lib/timeout.rb

Files

Class/Module Index [+]

Quicksearch

Timeout::Error

Raised by Timeout.timeout when the block times out.

Attributes

thread[R]

Public Class Methods

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

Public Instance Methods

exception(*) click to toggle source
 
               # File ruby-3.1.2/lib/timeout.rb, line 39
def exception(*)
  # TODO: use Fiber.current to see if self can be thrown
  if self.thread == Thread.current
    bt = caller
    begin
      throw(@catch_value, bt)
    rescue UncaughtThrowError
    end
  end
  super
end