module LightIO::Library::Timeout
Constants
- Error
Public Instance Methods
timeout(sec, klass=Error) { |sec| ... }
click to toggle source
# File lib/lightio/library/timeout.rb, line 7 def timeout(sec, klass=Error, &blk) return yield(sec) if sec.nil? or sec.zero? beam = LightIO::Beam.new(sec, &blk) message = "execution expired" if beam.join(sec).nil? raise klass, message else beam.value end end