docs: def __serve_forever(self):
          """Main client loop."""
          # No need to update the server list
          # It's done by the GlancesAutoDiscoverListener class (autodiscover.py)
          # Or define staticaly in the configuration file (module static_list.py)
          # For each server in the list, grab elementary stats (CPU, LOAD, MEM, OS...)
          thread_list = {}
          while self.screen.is_end == False:
              logger.debug("Iter through the following server list: {}".format(self.get_servers_list()))
              for v in self.get_servers_list():
                  key = v["key"]
                  thread = thread_list.get(key, None)
                  if thread is None or thread.is_alive() == False:
                      thread = threading.Thread(target=self.__update_stats, args=[v])
                      thread_list[key] = thread
                      thread.start()
  
              # Update the screen (list or Glances client)
              if self.screen.active_server is None:
                  #  Display the Glances browser
                  self.screen.update(self.get_servers_list())
              else:
                  # Display the active server
                  self.__display_server(self.get_servers_list()[self.screen.active_server])
  
          # exit key pressed
          for thread in thread_list.values():
              thread.join()