Aki Lan
Aki Lan

Reputation: 97

Python Multiprocessing : AssertionError: can only join a started process error when multiple process are spawned in loop

I have spawned multiple process using for loop and appended each process into an array after starting it.

for param in multiples_100:
    p = Process(target=calculate, args=(param,))
    processes.append(p)
    p.start()
p = Process(target=calculate, args=(200,))
processes.append(p)
for p in processes:
    p.join()

when I try to join all processes It's throwing AssertionError: can only join a started process

Upvotes: 4

Views: 2078

Answers (1)

Hannu
Hannu

Reputation: 12205

You do not start the final process outside the loop.

for param in multiples_100:
    p = Process(target=calculate, args=(param,))
    processes.append(p)
    p.start()
p = Process(target=calculate, args=(200,))
p.start()
processes.append(p)
for p in processes:
    p.join()

should fix it.

Upvotes: 2

Related Questions