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