summaryrefslogtreecommitdiffstats
path: root/Lib/test/mp_preload.py
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2016-12-10 16:16:17 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2016-12-10 16:16:17 (GMT)
commitebb39bcc048b33d529a64f517ccee1c172ff8b07 (patch)
treee9c5c42ccd7271e9d67506797417b06066d90f2a /Lib/test/mp_preload.py
parent13f1c331a5dd5b4ff3b1e4c9e47d6d3ae75e0f8f (diff)
parentcd2a201e5bb33c9b44401a91e10189be87885efe (diff)
downloadcpython-ebb39bcc048b33d529a64f517ccee1c172ff8b07.zip
cpython-ebb39bcc048b33d529a64f517ccee1c172ff8b07.tar.gz
cpython-ebb39bcc048b33d529a64f517ccee1c172ff8b07.tar.bz2
Issue #28779: multiprocessing.set_forkserver_preload() would crash the forkserver process if a preloaded module instantiated some multiprocessing objects such as locks.
Diffstat (limited to 'Lib/test/mp_preload.py')
-rw-r--r--Lib/test/mp_preload.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/Lib/test/mp_preload.py b/Lib/test/mp_preload.py
new file mode 100644
index 0000000..5314e8f
--- /dev/null
+++ b/Lib/test/mp_preload.py
@@ -0,0 +1,18 @@
+import multiprocessing
+
+multiprocessing.Lock()
+
+
+def f():
+ print("ok")
+
+
+if __name__ == "__main__":
+ ctx = multiprocessing.get_context("forkserver")
+ modname = "test.mp_preload"
+ # Make sure it's importable
+ __import__(modname)
+ ctx.set_forkserver_preload([modname])
+ proc = ctx.Process(target=f)
+ proc.start()
+ proc.join()