summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-01-18 12:49:24 (GMT)
committerGitHub <noreply@github.com>2024-01-18 12:49:24 (GMT)
commitc2a2126782abe0459ecc7e73f6b175a8d2f77e2a (patch)
tree0332a23c0fa022ef2f6027fe25de42a33b52bdea /Lib
parenteb582df61fcdbdd5b510da5d3744e5f60bf8b81d (diff)
downloadcpython-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.py10
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()