def complete_io(self, iocb, msg):
    'Called by a handler to return data to the client.'
    if _debug:
        IOQController._debug('complete_io %r %r', iocb, msg)
    if (iocb is not self.active_iocb):
        raise RuntimeError('not the current iocb')
    IOController.complete_io(self, iocb, msg)
    self.active_iocb = None
    if self.wait_time:
        self.state = CTRL_WAITING
        task = FunctionTask(IOQController._wait_trigger, self)
        task.install_task((_time() + self.wait_time))
    else:
        self.state = CTRL_IDLE
        deferred(IOQController._trigger, self)
Called by a handler to return data to the client.
def complete_io(self, iocb, msg):
    
    if _debug:
        IOQController._debug('complete_io %r %r', iocb, msg)
    if (iocb is not self.active_iocb):
        raise RuntimeError('not the current iocb')
    IOController.complete_io(self, iocb, msg)
    self.active_iocb = None
    if self.wait_time:
        self.state = CTRL_WAITING
        task = FunctionTask(IOQController._wait_trigger, self)
        task.install_task((_time() + self.wait_time))
    else:
        self.state = CTRL_IDLE
        deferred(IOQController._trigger, self)