Hola! Planteé lo siguiente pero me estoy encontrando con que no funciona correctamente.
Para empezar, quería darle prioridad al capataz poniendo un semáforo binario "capataz" inicializado en 1, pero viendo lo que escribí llego a que si hay algún obrero tomando ladrillos el capataz no puede entrar al pallet, lo cual no sé si eso está bien (si un obrero o la grua esta ejecutandose, ¿el capataz debe cortar con eso y ejecutar él?). Creo que con lo que escribí ninguno tiene prioridad sobre ninguno.
También veo que si un obrero detecta que no hay ladrillos suficientes, despierta a la grúa (semáforo binario inicializado en 0) , pero la grúa no va a poder efectuar el cambio de pallet pues estaría trancada en P(capataz).
Por último, si capataz es binario, los obreros pueden tomar ladrillos de a uno por vez, y no los cuatro en simultáneo. Esto es correcto?
Agradezco si me aclaran cómo mejorar el código!