def complete(self, msg):
    'Called to complete a transaction, usually when process_io has\n        shipped the IOCB off to some other thread or function.'
    if _debug:
        IOCB._debug('complete(%d) %r', self.ioID, msg)
    if self.ioController:
        self.ioController.complete_io(self, msg)
    else:
        self.ioState = COMPLETED
        self.ioResponse = msg
        self.trigger()
Called to complete a transaction, usually when process_io has
shipped the IOCB off to some other thread or function.
def complete(self, msg):
    'Called to complete a transaction, usually when process_io has\n        shipped the IOCB off to some other thread or function.'
    if _debug:
        IOCB._debug('complete(%d) %r', self.ioID, msg)
    if self.ioController:
        self.ioController.complete_io(self, msg)
    else:
        self.ioState = COMPLETED
        self.ioResponse = msg
        self.trigger()