code: def _trigger(self):
          
          if _debug: IOQController._debug("_trigger")
  
          # if we are busy, do nothing
          if self.state != CTRL_IDLE:
              if _debug: IOQController._debug("    - not idle")
              return
  
          # if there is nothing to do, return
          if not self.ioQueue.queue:
              if _debug: IOQController._debug("    - empty queue")
              return
  
          # get the next iocb
          iocb = self.ioQueue.get()
  
          try:
              # hopefully there won't be an error
              err = None
  
              # let derived class figure out how to process this
              self.process_io(iocb)
          except:
              # extract the error
              err = sys.exc_info()[1]
  
          # if there was an error, abort the request
          if err:
              self.abort_io(iocb, err)
  
          # if we're idle, call again
          if self.state == CTRL_IDLE:
              deferred(IOQController._trigger, self)
docs: Called to launch the next request in the queue.