code: def run_forever(self, *args, **kwargs):
          
          # feed events to collect loop
          self._bot.scheduler.on_event(self._collectloop.input_queue.put)
          self._bot.scheduler.run_as_thread()
  
          self._orderer.run_as_thread(*args, **kwargs)
          self._collectloop.run_forever()
docs: :type maxhold: float
          :param maxhold:
              The maximum number of seconds an update is held waiting for a
              not-yet-arrived smaller ``update_id``. When this number of seconds
              is up, the update is delivered to the message-handling function
              even if some smaller ``update_id``\s have not yet arrived. If those
              smaller ``update_id``\s arrive at some later time, they are discarded.
  
          Calling this method will block forever. Use :meth:`.run_as_thread` to
          run it non-blockingly.