code: def complete(self, msg):
          
          if _debug: IOCB._debug("complete(%d) %r", self.ioID, msg)
  
          if self.ioController:
              # pass to controller
              self.ioController.complete_io(self, msg)
          else:
              # just fill in the data
              self.ioState = COMPLETED
              self.ioResponse = msg
              self.trigger()
docs: Called to complete a transaction, usually when ProcessIO has
          shipped the IOCB off to some other thread or function.