cuando lo hice la sentencia a_retirar = true; la puse al final. Y en el if de inspeccionar solo me fijo en a_retirar
Esta bien esto? El resto me quedo similar.
así están en la solución:
void voy_a_retirar() {
a_retirar = true;
if(inspectores > 0)
retirar.Wait(); // Si hay inspectores, espero para poder retirar
void inspeccionar() {
if(inspectores == 0 && a_retirar)
inspector.Wait(); // Si empaquetador esta retirando, espero
inspector.Signal();
}