code: def timeout_queue_add(self, item, cache_time=0):
          
          # add the info to the add queue.  We do this so that actually adding
          # the module is done in the core thread.
          self.timeout_add_queue.append((item, cache_time))
          # if the timeout_add_queue is not due to be processed until after this
          # update request is due then trigger an update now.
          if self.timeout_due is None or cache_time < self.timeout_due:
              self.update_request.set()
docs: Add a item to be run at a future time.
          This must be a Module, I3statusModule or a Task