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 <[email protected]>
<http://bugs.python.org/issue8094>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com