code: def send_request(self, error_no_hosts=True):
          
          # query_plan is an iterator, so this will resume where we last left
          # off if send_request() is called multiple times
          for host in self.query_plan:
              req_id = self._query(host)
              if req_id is not None:
                  self._req_id = req_id
                  return True
              if self.timeout is not None and time.time() - self._start_time > self.timeout:
                  self._on_timeout()
                  return True
  
          if error_no_hosts:
              self._set_final_exception(NoHostAvailable(
                  "Unable to complete the operation against any hosts", self._errors))
          return False
docs: Internal