Davin Potts added the comment:

On Windows 7 (64-bit), it was not possible to reproduce any infinite looping 
behavior with the supplied example code.

Specifically, with the two examples from Benjamin, the observed behavior when 
running them was the same under 2.7.8 and default (3.5):  a RuntimeError 
results with a message suggesting that the code perhaps needs to leverage the 
"if __name__ == '__main__'" idiom to avoid having both parent and all 
subsequent children processes starting up a new process because they're all 
unintentionally running the same lines of code intended only for the parent to 
run.  Adding that idiomatic test to each of the two examples permits them to 
run to a happy conclusion.  That is, in the case of the first example we make 
that one-line code change to read:
# ---
import multiprocessing

def f(m):
    print(m)

if __name__ == '__main__':
    p = multiprocessing.Process(target=f, args=('pouet',))
    p.start()
# ---

This would be a recommended practice on unix-y systems as well as Windows.

Aside: It was not possible to reproduce the issue injected by Darren either -- 
perhaps the example code provided was not quite what he intended.

The infinite looping behavior described in the original issue description might 
well have been reproducible in much earlier releases.  In the current default 
(3.5) branch (or in 2.7.8), it is no longer possible to reproduce.  I'm tempted 
to mark this as "out of date" but instead will opt for "works for me" and close 
the issue.

----------
nosy: +davin
resolution:  -> works for me
status: open -> closed

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue8094>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to