Issue #22853: Fixed a deadlock when use multiprocessing.Queue at import time.
Patch by Florian Finkernagel and Davin Potts.
diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
index ec4507e..b1e75b5 100644
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -620,6 +620,26 @@
for p in workers:
p.join()
+ def test_no_import_lock_contention(self):
+ with test_support.temp_cwd():
+ module_name = 'imported_by_an_imported_module'
+ with open(module_name + '.py', 'w') as f:
+ f.write("""if 1:
+ import multiprocessing
+
+ q = multiprocessing.Queue()
+ q.put('knock knock')
+ q.get(timeout=3)
+ q.close()
+ """)
+
+ with test_support.DirsOnSysPath(os.getcwd()):
+ try:
+ __import__(module_name)
+ except Queue.Empty:
+ self.fail("Probable regression on import lock contention;"
+ " see Issue #22853")
+
#
#
#