[issue13812] multiprocessing package doesn't flush stderr on child exception
Memeplex
report at bugs.python.org
Thu Aug 27 21:06:46 CEST 2015
Memeplex added the comment:
I would like to reopen this issue because of the following, very related, behavior. Try this:
```
import multiprocessing as mp
import time
def g():
time.sleep(100)
def f():
mp.Process(target=g).start()
1/0
mp.Process(target=f).start()
```
It won't show the ZeroDivisionError until you keyboard interrupt the g() process or wait for it to end. This is because _exit_function will join every active non-daemon child, which happens before printing and flushing the error. IMO the exception should be shown before joining children, since keeping the error silent is asking for trouble.
----------
nosy: +memeplex
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue13812>
_______________________________________
More information about the Python-bugs-list
mailing list