class Async::Reactor
def with_timeout(timeout, exception = TimeoutError)
-
duration
(Numeric
) -- The time in seconds, in which the task should
def with_timeout(timeout, exception = TimeoutError) fiber = Fiber.current timer = @timers.after(timeout) do if fiber.alive? error = exception.new("execution expired") fiber.resume error end end yield timer ensure timer.cancel if timer end