的代码的相关部分看起来是这样的:产卵,并在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)
什么这应该做的是产卵所有进程的关闭,然后等待每个进程在继续前完成。它所做的大部分工作,但有时会在下一部分崩溃(当它期望所有这些过程完成时)。
这是否有问题?有没有更好的方法来做到这一点?
它必须使用的环境是Python 2.4的CentOS,但是我正在用Python 2.5测试Cygwin,所以它可能会在我的机器上失败,但可以在Linux上工作(Linux机器是非常缓慢,这个错误很罕见,所以我一直无法得到它)。
我很困惑,为什么我会需要安装模块时'subprocess.Popen()'在Python 2.4 – 2010-06-07 23:50:35
@Brendan,关键bug修复工作正常,电除尘器。对于同时使用子进程和线程的程序 - 在我指出的简短页面中提到,它是整个第二段。你有什么理由需要完整的修复列表......? EINTR处理,没有更大的FD问题,没有更多的FD /手柄泄漏... – 2010-06-08 00:40:23
哦,我明白了。我问,因为这是一个工作项目,如果我不需要安装任何新的东西,它会容易得多。谢谢。 – 2010-06-08 00:47:27