diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2024-01-18 12:49:24 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-18 12:49:24 (GMT) |
commit | c2a2126782abe0459ecc7e73f6b175a8d2f77e2a (patch) | |
tree | 0332a23c0fa022ef2f6027fe25de42a33b52bdea /Lib | |
parent | eb582df61fcdbdd5b510da5d3744e5f60bf8b81d (diff) | |
download | cpython-c2a2126782abe0459ecc7e73f6b175a8d2f77e2a.zip cpython-c2a2126782abe0459ecc7e73f6b175a8d2f77e2a.tar.gz cpython-c2a2126782abe0459ecc7e73f6b175a8d2f77e2a.tar.bz2 |
[3.12] gh-113205: test_multiprocessing.test_terminate: Shorter sleep for threadpools (GH-114186) (GH-114222)
Threads can't be forced to terminate (without potentially corrupting too much
state), so the expected behaviour of `ThreadPool.terminate` is to wait for
the currently executing tasks to finish.
Use shorter sleep time for threadpools, so if a task manages to start, the test
doesn't block for long.
(cherry picked from commit c1db9606081bdbe0207f83a861a3c70c356d3704)
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/_test_multiprocessing.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index 9ab0f9b..4cadefe 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -2694,8 +2694,16 @@ class _TestPool(BaseTestCase): def test_terminate(self): # Simulate slow tasks which take "forever" to complete + sleep_time = support.LONG_TIMEOUT + + if self.TYPE == 'threads': + # Thread pool workers can't be forced to quit, so if the first + # task starts early enough, we will end up waiting for it. + # Sleep for a shorter time, so the test doesn't block. + sleep_time = 1 + p = self.Pool(3) - args = [support.LONG_TIMEOUT for i in range(10_000)] + args = [sleep_time for i in range(10_000)] result = p.map_async(time.sleep, args, chunksize=1) p.terminate() p.join() |