Search code examples
pythonpython-multiprocessingpool

Very basic multiprocessing example with pool.apply() never calls function or terminates


I am trying to set up the very basic example of multiprocessing below. However, the execution only prints here and <_MainProcess(MainProcess, started)> and pool.apply() never even calls the function cube(). Instead, the execution just keeps running indefinitely without termination.

import multiprocessing as mp

def cube(x):
    print('in function')
    return x**3

if __name__ == '__main__':
    pool = mp.Pool(processes=4)
    print('here')
    print(mp.current_process())

    results = [pool.apply(cube, args=(x,)) for x in range(1,7)]
    print('now here')

    pool.close()
    pool.join()
    print(results)

I have tried various other basic examples including pool.map() but keep running into the same problem. I am using Python 3.7 on Windows 10. Since I am out of ideas, does anybody know what is wrong here or how I can debug this further?

Thanks!


Solution

  • Thank you, upgrading to Python 3.7.3 solved the issue.