diff options
author | Richard Oudkerk <shibturn@gmail.com> | 2012-08-14 10:41:19 (GMT) |
---|---|---|
committer | Richard Oudkerk <shibturn@gmail.com> | 2012-08-14 10:41:19 (GMT) |
commit | faee75c33af1e8ccbf0d4349efe62dc9637779c6 (patch) | |
tree | ccb94112923dcfb68edc2f7550c536c816396b0c /Lib/test/mp_fork_bomb.py | |
parent | fe9efc57327b6306c5b755fae8ad6729484adcd4 (diff) | |
download | cpython-faee75c33af1e8ccbf0d4349efe62dc9637779c6.zip cpython-faee75c33af1e8ccbf0d4349efe62dc9637779c6.tar.gz cpython-faee75c33af1e8ccbf0d4349efe62dc9637779c6.tar.bz2 |
Issue #15646: Prevent equivalent of a fork bomb when using multiprocessing
on Windows without the "if __name__ == '__main__'" idiom.
Diffstat (limited to 'Lib/test/mp_fork_bomb.py')
-rw-r--r-- | Lib/test/mp_fork_bomb.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/mp_fork_bomb.py b/Lib/test/mp_fork_bomb.py new file mode 100644 index 0000000..72cea25 --- /dev/null +++ b/Lib/test/mp_fork_bomb.py @@ -0,0 +1,16 @@ +import multiprocessing + +def foo(conn): + conn.send("123") + +# Because "if __name__ == '__main__'" is missing this will not work +# correctly on Windows. However, we should get a RuntimeError rather +# than the Windows equivalent of a fork bomb. + +r, w = multiprocessing.Pipe(False) +p = multiprocessing.Process(target=foo, args=(w,)) +p.start() +w.close() +print(r.recv()) +r.close() +p.join() |