Message375087
The source code for the Process class is here: https://github.com/python/cpython/blob/master/Lib/multiprocessing/process.py
You can see that join and start both modify the global, non thread safe _children set. I'm guessing this is where you're seeing interference between threads.
I'm not sure a lock on start is enough - I think you need to get the lock for the join_process(job, deadline) call as well, because join can modify _children too. (Or, alternatively, manage all processes from a single thread.) |
|
Date |
User |
Action |
Args |
2020-08-09 23:08:48 | iritkatriel | set | recipients:
+ iritkatriel, pitrou, davin, Arkady M |
2020-08-09 23:08:48 | iritkatriel | set | messageid: <1597014528.26.0.898694035673.issue40860@roundup.psfhosted.org> |
2020-08-09 23:08:48 | iritkatriel | link | issue40860 messages |
2020-08-09 23:08:48 | iritkatriel | create | |
|