class Async::Reactor
def sleep(duration)
def sleep(duration) task = Fiber.current timer = self.after(duration) do if task.alive? task.resume end end result = Fiber.yield raise result if result.is_a? Exception ensure timer.cancel if timer end
def sleep(duration) task = Fiber.current timer = self.after(duration) do if task.alive? task.resume end end result = Fiber.yield raise result if result.is_a? Exception ensure timer.cancel if timer end