Paxos.Agents.Learner.ProcessTimeouts C# (CSharp) Method

ProcessTimeouts() public method

public ProcessTimeouts ( ) : bool
return bool
		public override bool ProcessTimeouts()
		{
			var requestedHoles = false;
			var missingProposals = new List<int>();
			for (var i = 0; i < Commands.Count; i++)
			{
				if (Commands[i] == null)
					missingProposals.Add(i + 1);
			}
			if (lastRequestedTopProposal.AddSeconds(1) < DateTime.Now)
			{
				lastRequestedTopProposal = DateTime.Now;
				missingProposals.Add(Commands.Count+1); // in case we didn't get the latest proposal
			}
			foreach (var missingProposal in missingProposals)
			{
				log.DebugFormat("Querying accepted value for {0}", missingProposal);
				requestedHoles = true;
				foreach (var acceptor in knownAcceptors)
				{
					acceptor.SendMessage(new AcceptedValueQuery
					{
						Originator = this,
						ProposalNumber = missingProposal
					});
				}
			}
			return requestedHoles;
		}