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?