code: def start_next_cycle(self):
          
          old_states = dict(self._cstate.states)
          self._cstate.start_next_cycle()
          self._request_method = None
          # self.their_http_version gets left alone, since it presumably lasts
          # beyond a single request/response cycle
          assert not self.client_is_waiting_for_100_continue
          self._respond_to_state_changes(old_states)
docs: Attempt to reset our connection state for a new request/response
          cycle.
  
          If both client and server are in :data:`DONE` state, then resets them
          both to :data:`IDLE` state in preparation for a new request/response
          cycle on this same connection. Otherwise, raises a
          :exc:`LocalProtocolError`.
  
          See :ref:`keepalive-and-pipelining`.