Buenas! La letra de esta parcial esta en el siguiente link: https://eva.fing.edu.uy/pluginfile.php/77323/mod_folder/content/0/2021/202107_superparcial_solucion.pdf?forcedownload=1
Cuando termina el supervisor hace lo siguiente:
La duda es:
El foreach se podría sacar y dejar el procedimiento de la siguiente manera?
procedure terminaSupervisor(){
haySupervisor = false;
esperandoFinSupervisor.signal(); //DESPIERTO SOLO 1 DE LOS 6
cantidadEsperandoSupervisor--;
}
y luego para cada casilla en el procedimiento casillaLibre al final del todo hacer:
if cantidadEsperandoSupervisor > 0 then
begin
esperandoFinSupervisor.signal(); //DESPIERTO A OTRO DE LOS QUE ESTE TRANCADO POR EL SUPERVISOR
cantidadEsperandoSupervisor--;
end;
Lo que pretendo con esto es no usar un for y que cada casilla despierte a otra luego de que la primera se desperto porque seguro termino de trabajar el supervisor.
No se si me explique correctamente. Si no se entiende me avisan y vuelvo a preguntar.
Saludos,