private async Task CleanseOfExpiredExecutionsAsync(CriticalSectionState csState, SqlCommand command) { var csQueue = csState.GetQueue(); var activeExecutionIds = GetActiveTaskExecutionIds(csState); if (activeExecutionIds.Any()) { var taskExecutionStates = await GetTaskExecutionStatesAsync(activeExecutionIds, command).ConfigureAwait(false); CleanseCurrentGranteeIfExpired(csState, taskExecutionStates); CleanseQueueOfExpiredExecutions(csState, taskExecutionStates, csQueue); } }
private void CleanseOfExpiredExecutions(CriticalSectionState csState, SqlCommand command) { var csQueue = csState.GetQueue(); var activeExecutionIds = GetActiveTaskExecutionIds(csState); if (activeExecutionIds.Any()) { var taskExecutionStates = GetTaskExecutionStates(activeExecutionIds, command); CleanseCurrentGranteeIfExpired(csState, taskExecutionStates); CleanseQueueOfExpiredExecutions(csState, taskExecutionStates, csQueue); } }
private List <string> GetActiveTaskExecutionIds(CriticalSectionState csState) { var taskExecutionIds = new List <string>(); if (!HasEmptyGranteeValue(csState)) { taskExecutionIds.Add(csState.GrantedToExecution); } if (csState.HasQueuedExecutions()) { taskExecutionIds.AddRange(csState.GetQueue().Select(x => x.TaskExecutionId)); } return(taskExecutionIds); }
private List<string> GetActiveTaskExecutionIds(CriticalSectionState csState) { var taskExecutionIds = new List<string>(); if (!HasEmptyGranteeValue(csState)) taskExecutionIds.Add(csState.GrantedToExecution); if (csState.HasQueuedExecutions()) taskExecutionIds.AddRange(csState.GetQueue().Select(x => x.TaskExecutionId)); return taskExecutionIds; }