I am using a pool of processes. This logic seems to have been working until recently.
pool = multiprocessing.Pool(processes = 2*multiprocessing.cpu_count())
for p in processArgs:
pool.apply_async(myFunc, p)
pool.close()
pool.join()
Now it seems when this is run, I end up with all child processes in a defunct state and the parent process appears not to have performed the pool.join()
yet (based a
) on the fact that the defunct processes are still there and b
) on the fact that logic that occurs next appears not to have executed.
The defunct processes are zombies, right? This means they have died but haven't been reaped, correct?