fn process_best_round(&mut self, cx: &mut Context) -> Poll<Result<(), E::Error>> {
		// If the current `best_round` is completable and we've already precommitted,
		// we start a new round at `best_round + 1`.
		{
			let mut inner = self.inner.lock();

			let should_start_next = {
				let completable = match inner.best_round.poll(cx)? {
					Poll::Ready(()) => true,
					Poll::Pending => false,
				};

				// start when we've cast all votes.
				let precommitted =
					matches!(inner.best_round.state(), Some(&VotingRoundState::Precommitted));

				completable && precommitted
			};

			if !should_start_next {
				return Poll::Pending
			}

			trace!(target: "afg", "Best round at {} has become completable. Starting new best round at {}",
				inner.best_round.round_number(),
				inner.best_round.round_number() + 1,
			);
		}

		self.completed_best_round()?;

		// round has been updated. so we need to re-poll.
		self.poll_unpin(cx)
	}
// process the logic of the best round.
process the logic of the best round.
process the logic of the best round .
fn process_best_round(&mut self, cx: &mut Context) -> Poll<Result<(), E::Error>> {
		// If the current `best_round` is completable and we've already precommitted,
		// we start a new round at `best_round + 1`.
		{
			let mut inner = self.inner.lock();
			let should_start_next = {
				let completable = match inner.best_round.poll(cx)? {
					Poll::Ready(()) => true,
					Poll::Pending => false,
				};
				// start when we've cast all votes.
				let precommitted =
					matches!(inner.best_round.state(), Some(&VotingRoundState::Precommitted));
				completable && precommitted
			};
			if !should_start_next {
				return Poll::Pending
			}
			trace!(target: "afg", "Best round at {} has become completable. Starting new best round at {}",
				inner.best_round.round_number(),
				inner.best_round.round_number() + 1,
			);
		}
		self.completed_best_round()?;
		// round has been updated. so we need to re-poll.
		self.poll_unpin(cx)
	}
fn process_best_round ( & mut self , cx : & mut Context ) -> Poll < Result < ( ) , E :: Error > > { // If the current `best_round` is completable and we've already precommitted, // we start a new round at `best_round + 1`. { let mut inner = self . inner . lock ( ) ; let should_start_next = { let completable = match inner . best_round . poll ( cx ) ? { Poll :: Ready ( ( ) ) => true , Poll :: Pending => false , } ; // start when we've cast all votes. let precommitted = matches ! ( inner best_round state ( ) Some ( VotingRoundState Precommitted ) ) ; completable && precommitted } ; if ! should_start_next { return Poll :: Pending } trace ! ( target " " " " inner best_round round_number ( ) inner best_round round_number ( ) 1 ) ; } self . completed_best_round ( ) ? ; // round has been updated. so we need to re-poll. self . poll_unpin ( cx ) }
process the logic of the best round.
process the logic of the best round .
&mut self
cx
&mut Context
&mut self
cx
&mut Context