mirror of
https://github.com/python/cpython.git
synced 2025-08-01 23:53:15 +00:00
bpo-39205: Tests that highlight a hang on ProcessPoolExecutor shutdown (#18221)
This commit is contained in:
parent
2824c45a0a
commit
884eb89d4a
1 changed files with 20 additions and 0 deletions
|
@ -342,6 +342,26 @@ class ExecutorShutdownTest:
|
||||||
for f in fs:
|
for f in fs:
|
||||||
f.result()
|
f.result()
|
||||||
|
|
||||||
|
def test_hang_issue39205(self):
|
||||||
|
"""shutdown(wait=False) doesn't hang at exit with running futures.
|
||||||
|
|
||||||
|
See https://bugs.python.org/issue39205.
|
||||||
|
"""
|
||||||
|
if self.executor_type == futures.ProcessPoolExecutor:
|
||||||
|
raise unittest.SkipTest(
|
||||||
|
"Hangs due to https://bugs.python.org/issue39205")
|
||||||
|
|
||||||
|
rc, out, err = assert_python_ok('-c', """if True:
|
||||||
|
from concurrent.futures import {executor_type}
|
||||||
|
from test.test_concurrent_futures import sleep_and_print
|
||||||
|
if __name__ == "__main__":
|
||||||
|
t = {executor_type}(max_workers=3)
|
||||||
|
t.submit(sleep_and_print, 1.0, "apple")
|
||||||
|
t.shutdown(wait=False)
|
||||||
|
""".format(executor_type=self.executor_type.__name__))
|
||||||
|
self.assertFalse(err)
|
||||||
|
self.assertEqual(out.strip(), b"apple")
|
||||||
|
|
||||||
|
|
||||||
class ThreadPoolShutdownTest(ThreadPoolMixin, ExecutorShutdownTest, BaseTestCase):
|
class ThreadPoolShutdownTest(ThreadPoolMixin, ExecutorShutdownTest, BaseTestCase):
|
||||||
def _prime_executor(self):
|
def _prime_executor(self):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue