multiprocessing signal defect
Neal Becker
ndbecker2 at gmail.com
Fri Oct 29 08:12:19 EDT 2010
Seems multiprocessing doesn't behave well with signals:
-----------
from multiprocessing import Pool
import time
def sleep (dummy):
time.sleep (10)
if __name__ == '__main__':
pool = Pool (processes=2)
result = pool.map (sleep, range (4))
-------------
start it up
$ python test_multip.py
----------------------
ps auxf | grep python
nbecker 6605 1.6 0.1 338192 6952 pts/1 Sl+ 08:03 0:00 | \_
python test_multip.py
nbecker 6606 0.0 0.1 186368 4760 pts/1 S+ 08:03 0:00 |
\_ python test_multip.py
nbecker 6607 0.0 0.1 186372 4740 pts/1 S+ 08:03 0:00 |
\_ python test_multip.py
kill 6607
ps auxf | grep python
nbecker 6605 0.5 0.1 338192 6952 pts/1 Sl+ 08:03 0:00 | \_
python test_multip.py
nbecker 6606 0.0 0.1 186368 4760 pts/1 S+ 08:03 0:00 |
\_ python test_multip.py
nbecker 6607 0.0 0.0 0 0 pts/1 Z+ 08:03 0:00 |
\_ [python] <defunct>
kill 6606
ps auxf | grep python
nbecker 6605 0.3 0.1 338192 6952 pts/1 Sl+ 08:03 0:00 | \_
python test_multip.py
nbecker 6606 0.0 0.0 0 0 pts/1 Z+ 08:03 0:00 |
\_ [python] <defunct>
nbecker 6607 0.0 0.0 0 0 pts/1 Z+ 08:03 0:00 |
\_ [python] <defunct>
Now we have 2 dead children and the parent is hung forever.
Isn't this a serious defect?
More information about the Python-list
mailing list