/// <summary> /// Método responsável por liberar os semáforos a partir do índice atual dos semáforos. /// </summary> /// <param name="semaforosPorIntervalo">Lista de semáforos</param> /// <param name="indice">Indice da posicao do semáforo</param> public static void LiberarSemaforo(List <SemaforoPorIntervalo> semaforosPorIntervalo, int indice) { for (int i = indice; i < semaforosPorIntervalo.Count; i++) { SemaforoPorIntervalo.LiberarSemaforo(semaforosPorIntervalo[i]); } }
/// <summary> /// Método responsável por Liberar um semáforo e decrementar o contador, que indica se um semáforo está em espera, dos demais semáforos da lista que seria usada. /// </summary> /// <param name="semaforoPorIntervalo">Semáforo para liberar</param> /// <param name="semaforosPorIntervalo">Lista de semáforos para decrementar o contador em espera</param> /// <param name="indice">índice em que a lista irá começar a decrementar</param> public static void LiberarSemaforoEDecrementarContadoresEmEsperaDosDemaisSemaforos(SemaforoPorIntervalo semaforoPorIntervalo, List <SemaforoPorIntervalo> semaforosPorIntervalo, int indice = 0) { SemaforoPorIntervalo.LiberarSemaforo(semaforoPorIntervalo); SemaforoPorIntervalo.DecrementarContadorSemaforoEmEspera(semaforosPorIntervalo, indice); }
/// <summary> /// Método responsável por liberar um semáforo que está em espera e diminuir o atributo que indicar que ele está em espera. /// </summary> /// <param name="semaforoPorIntervalo">Semáforo para ser liberado</param> public static void LiberarSemaforoEDecrementarContadorSemaforoEmEspera(SemaforoPorIntervalo semaforoPorIntervalo) { SemaforoPorIntervalo.LiberarSemaforo(semaforoPorIntervalo); SemaforoPorIntervalo.DecrementarContadorSemaforoEmEspera(semaforoPorIntervalo); }