Exemple #1
0
 private void TruncateTo(int newTopIndex)
 {
     lock (log)
     {
         while (log.Count > newTopIndex)
         {
             if (log[log.Count - 1].WasExecuted)
             {
                 throw new InvalidOperationException("Removing entry " + (log.Count - 1) + " which has already been executed");
             }
             if (DebugState != null)
             {
                 DebugState.SignalLogRemoval(log.Count - 1, log[log.Count - 1].Entry.Term);
             }
             log.RemoveAt(log.Count - 1);
         }
     }
 }