La parte pertinente del código es el siguiente:desove ya la espera de los procesos secundarios en Python
pids = []
for size in SIZES:
pids.append(os.spawnv(os.P_NOWAIT, RESIZECMD, [RESIZECMD, lotsOfOptions]))
# Wait for all spawned imagemagick processes to finish
while pids:
(pid, status) = os.waitpid(0, 0)
if pid:
pids.remove(pid)
Lo que esto debería estar haciendo está generando todos los procesos de apagado, luego esperar a que cada proceso termine antes de continuar . Lo que hace es trabajar en su mayor parte, pero a veces se cuelga en la siguiente sección (cuando espera que todos estos procesos estén terminados).
¿Hay algún problema con esto? ¿Hay una mejor manera de hacerlo?
El entorno en el que tiene que trabajar es CentOS con Python 2.4, pero estoy probando en Cygwin con Python 2.5, por lo que es posible que falle en mi máquina, pero funcionará en Linux (la máquina Linux es muy lento y este error es raro, así que no he podido conseguirlo allí).
estoy confundido acerca de por qué me tendría que instalar ese módulo cuando 'subprocess.Popen()' funciona bien en Python 2.4 –
@Brendan, correcciones de errores cruciales, esp. para programas que usan subprocesos y subprocesos, eso se menciona en la página corta que te indiqué, es todo el segundo párrafo. ¿Hay alguna razón por la que necesita la lista completa de soluciones ...? Manejo EINTR, no hay más problemas con FDs grandes, no más FD/manejar fugas ... –
Oh, ya veo. Le pregunté porque este es un proyecto de trabajo y es mucho más fácil si no tengo que instalar nada nuevo. Gracias. –