class Async::Condition
def initialize
def initialize @waiting = [] end
def signal(value)
def signal(value) while task = @waiting.pop task.resume(value) end end
def wait
def wait @waiting << Fiber.current Task.yield end
def initialize @waiting = [] end
def signal(value) while task = @waiting.pop task.resume(value) end end
def wait @waiting << Fiber.current Task.yield end