Example #1
0
		public Acceptor(Learner[] learners)
		{
			this.learners = learners;
			Register<Propose>(OnPropose);
			Register<Accept>(OnAccept);
			Register<AcceptedValueQuery>(OnAcceptedValueQuery);
		}
Example #2
0
		private static void WaitForNewValues(Learner[] learners)
		{
			Console.WriteLine("Waiting for new values");
			var shouldStop = 0;
			ThreadPool.QueueUserWorkItem(state =>
			{
				while (Thread.VolatileRead(ref shouldStop) == 0)
				{
					foreach (var learner in learners)
					{
						Console.WriteLine("# of commands: {0}. Value: {1}", learner.Commands.TakeWhile(x=>x!=null).Count(), learner.AppliedValue);
					}
					Console.WriteLine("- - - - - - - - -");
					Thread.Sleep(1000);
				}
			});

			Console.ReadLine();
			Thread.VolatileWrite(ref shouldStop, 1);
		}