En la solución del ejercicio del bloque 4 muestra que una vez que quieras despertar al empleado ejecuta
if (!hay_tabaco ()) {
rellenar = True
if (cant_fumar == 0) {
cnd_empleado.signal()
cnd_relleno.wait()
}
}
Puede ser que tenga un error esto? Porque si al momento que chequeas que no hay tabaco y en la pipa hay clientes, el empleado nunca se va a despertar.