private void CleanseQueueOfExpiredExecutions(CriticalSectionState csState, List <TaskExecutionState> taskExecutionStates, List <CriticalSectionQueueItem> csQueue) { var validQueuedExecutions = (from tes in taskExecutionStates join q in csQueue on tes.TaskExecutionId equals q.TaskExecutionId where HasCriticalSectionExpired(tes) == false select q).ToList(); if (validQueuedExecutions.Count != csQueue.Count) { var updatedQueue = new List <CriticalSectionQueueItem>(); int newQueueIndex = 1; foreach (var validQueuedExecution in validQueuedExecutions.OrderBy(x => x.Index)) { updatedQueue.Add(new CriticalSectionQueueItem(newQueueIndex, validQueuedExecution.TaskExecutionId)); } csState.UpdateQueue(updatedQueue); } }
private void CleanseQueueOfExpiredExecutions(CriticalSectionState csState, List<TaskExecutionState> taskExecutionStates, List<CriticalSectionQueueItem> csQueue) { var validQueuedExecutions = (from tes in taskExecutionStates join q in csQueue on tes.TaskExecutionId equals q.TaskExecutionId where HasCriticalSectionExpired(tes) == false select q).ToList(); if (validQueuedExecutions.Count != csQueue.Count) { var updatedQueue = new List<CriticalSectionQueueItem>(); int newQueueIndex = 1; foreach (var validQueuedExecution in validQueuedExecutions.OrderBy(x => x.Index)) updatedQueue.Add(new CriticalSectionQueueItem(newQueueIndex, validQueuedExecution.TaskExecutionId)); csState.UpdateQueue(updatedQueue); } }