code: def __flush(self, async=True):
          
          rh = self.rh
          messages = list(self.messages)
          stream_notices = list(self.stream_notices)
          self.stream_notices = []
          self.messages = []
          args = (rh, messages, stream_notices)
          if async:
              self.hub.threadPool.execute_named(self.__inner_flush,
                  '%s __inner__flush' % self.hub.l.name, *args)
          else:
              self.__inner_flush(*args)
          self.rh = None
          self._set_timeout(int(time.time() + self.hub.timeout))
docs: Flushes messages through current HttpRequest and closes it.
              It assumes a current requesthandler and requires a lock
              on self.lock