code: def _poll_loop(self):
          
          next_poll = time.time()
          while True:
              next_poll += self._poll_period
              timeout = next_poll - time.time()
              if timeout < 0:
                  timeout = 0
              try:
                  return self._stop_queue.get(timeout=timeout)
              except TimeoutError:
                  # No stop, no problem
                  pass
              try:
                  self.handle_changes(self.client.get_changes())
              except Exception:
                  # TODO: should fault here?
                  self.log.exception("Error while getting changes")
docs: At self.poll_period poll for changes